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)结构。
当我尝试声明一个包含静态变量的结构时,代码没有被编译并产生了下面提到的错误
#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)结构。