1
struct MyStruct {
  int x;
};

MyStruct theVar;

theVar.x = 10;

int main() {
  return 0;
}

コンパイラがエラーを表示するのはなぜですか。

エラー:「theVar」はタイプに名前を付けていません

4

2 に答える 2

6

main変数を作成して初期化できるのは、グローバルスコープの外部でのみです。そのようなグローバルスコープで変数に割り当てることはできません。

2つのオプションがあります。

作成時に初期化します。

MyStruct theVar = {10};

または

で割り当てますmain

theVar.x = 10;

最初のアプローチは、初期化という1つのステップ、2番目のアプローチには初期化割り当ての2つのステップがあるため、より優れていることに注意してください。

于 2012-04-19T05:45:27.347 に答える
1

関数の外でそのような割り当てを行うことはできません。main内に移動するか、初期化します。

MyStruct theVar = {10};
于 2012-04-19T05:45:47.987 に答える