0

struct次の構文を使用してプログラムに a を追加しようとしています:

struct foo {
    char bar[] = "baz";
    char qux[] = "abc";
    /* and so on */
};

何らかの理由で、structセミコロンを追加する必要があるということわざ内の各変数宣言でエラーが発生し、これで一種のループに陥っているようです。推奨される構文は次のようになります

struct foo {
    char bar[]; =; ;;;;;;/* infinite semicolons */"baz";
}

この種のエラーが発生したのはこれが初めてです。私は本当に何か間違ったことをしていますか、それともコンパイラ自体の問題ですか?

4

2 に答える 2

6

これは Xcode とは関係ありません。まったく。

このような構造体を初期化できないため、コンパイラエラーが発生します。

構造体型の定義は、型のみに関するものです。この時点でメンバーに値を割り当てても意味がありません。多分あなたは意味した

struct foo {
    char *bar;
    char *baz;
};

struct foo x = { "quirk", "foobar" };

代わりは?

于 2013-06-21T16:56:56.370 に答える
2

あなたは何か間違ったことをしています。構造体のメンバーに値を割り当てることはできません... データ型のインスタンスではなく、データ型を定義している最中です。

これにより、構造体の定義が得られ、その型の変数が (初期化付きで) 直接宣言されます。

struct foo {
    char *bar;
    char *qux;
} variable_name = {
    "baz", "abc"
};
于 2013-06-21T16:56:20.113 に答える