1
struct MyStruct {
  int x;
};

MyStruct theVar;

theVar.x = 10;

int main() {
  return 0;
}

为什么编译器给我错误:

错误:“theVar”没有命名类型

4

2 回答 2

6

您只能main在全局范围之外创建变量并对其进行初始化。您不能像这样在全局范围内分配变量。

你有两个选择:

在创建时初始化它:

MyStruct theVar = {10};

或者

分配它main

theVar.x = 10;

请注意,第一种方法更好,因为它只有一个步骤Initialization,第二种方法有两个步骤InitializationAssignment

于 2012-04-19T05:45:27.347 回答
1

你不能在函数之外做这样的赋值。将其移入 main 中,或使其成为初始化:

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