C结构中的静态变量

时间:2015-04-13 14:28:29

标签: c struct static declaration

当我尝试在其中声明一个带有静态变量的结构时,代码不会被编译并产生下面提到的错误

#include <stdio.h>

int main (){

struct test {
    int value;
    static int staticValue = 0;
}; 

return 0;
}

我得到的错误是;

 expected specifier-qualifier-list before ‘static’
  static int staticValue = 0;
  ^

谁能告诉我在这里缺少什么?

3 个答案:

答案 0 :(得分:4)

你可能 想要在struct函数中声明你的main - 这会将其范围限制为函数的范围,这很少是你想要的。< / p>

然后,在C中,static表示对象生存期,而不是结构成员。你想要的是一个static类成员,它是一个C ++(和不是一个C)构造。

答案 1 :(得分:0)

您无法在结构中创建static变量。如果该类型的所有结构必须共享一个变量,那将不必要地复杂化。

答案 2 :(得分:0)

这种事情(结构中static)只允许在C ++而不是C中使用。