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
にそれをtokens
-EDきます。
あなたが代わりに定義されていた場合は、
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