C 结构中的静态变量

static variables in C structs

当我尝试声明一个包含静态变量的结构时,代码没有被编译并产生了下面提到的错误

#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;
  ^

谁能告诉我我在这里错过了什么?

您不能在结构中创建 static 变量。如果该类型的所有结构都必须共享一个变量,这会使事情不必要地复杂化。

这种东西(static in struct)只允许在 C++ 而不是 C。

您可能 不想main 函数中声明您的 struct -- 这将其范围限制在函数的范围内,这种情况很少见你想要什么。

然后,在 C 中,static 指的是对象生命周期,而不是结构成员。您想要的是一个 static class 成员,它是一个 C++(并且 不是 一个 C)结构。