当我尝试在其中声明一个带有静态变量的结构时,代码不会被编译并产生下面提到的错误
#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;
^
谁能告诉我在这里缺少什么?
答案 0 :(得分:4)
你可能 想要在struct
函数中声明你的main
- 这会将其范围限制为函数的范围,这很少是你想要的。< / p>
然后,在C中,static
表示对象生存期,而不是结构成员。你想要的是一个static
类成员,它是一个C ++(和不是一个C)构造。
答案 1 :(得分:0)
您无法在结构中创建static
变量。如果该类型的所有结构必须共享一个变量,那将不必要地复杂化。
答案 2 :(得分:0)
这种事情(结构中static
)只允许在C ++而不是C中使用。