簡體   English   中英

C變量的初始化程序不完整

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM