C语言的变量具有不完整的初始值设定
-
26-09-2019 - |
题
我试图与默认值的结构,如下所述:默认值中C结构的。然而,我有这样的C代码,一个头文件内:
/* tokens.h */
typedef struct {
char *ID;
char *KEY;
char *TYPE;
} tokens;
const struct tokens TOKENS_DFLT = {
"id",
"key",
"type"
};
和我在第7行得到一个错误说:
error: variable 'TOKENS_DFLT' has initializer but incomplete type
任何人都可以请向我解释这是什么问题以及如何解决它,防止它在未来?
解决方案
您没有定义struct tokens
。您所定义的未命名和struct
同时typedef
-ED它的类型名称tokens
。
如果您已经代替定义
typedef struct tokens_ {
char *ID;
char *KEY;
char *TYPE;
} tokens;
然后,你可以宣布你的常数的或者的:
const struct tokens_ TOKENS_DFLT = { ... };
或者
const tokens TOKENS_DFLT = { ... };
因为它是,你是两头。
其他提示
此:
const struct tokens TOKENS_DFLT = {
"id",
"key",
"type"
};
应该是:
const tokens TOKENS_DFLT = {
"id",
"key",
"type"
};
既然你已经定义的名称tokens
意味着struct tokens
。
不隶属于 StackOverflow