質問

ここで説明したように、私は、デフォルト値で構造体を作成しようとしています:デフォルト値の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を定義しましたので。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top