[英]C Variable has incomplete initializer
我試圖用默認值制作一個結構,如下所述: C Struct中的默認值 。 但是,我在頭文件中有此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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.