2015-11-05 27 views
1

一个结构,我想有这样的功能的结构:如何创建一个“静态”变量在C

结构

  • 成员1(struct的每个实例都有这种自身价值)

  • 静态成员(每结构这股成员)

我我知道static关键字不会这样做。 我的问题是,我该如何模仿这种行为?

我可以创建一个指向全局变量的成员吗?

有没有其他更好的方法来做到这一点?

+4

如果该成员共同所有'structs'为什么把它作为一员? –

+0

我不确定你可以,它不是面向对象的。你不能在C中执行'struct :: static_member'。 – SomethingSomething

+0

检查这个线程:http://stackoverflow.com/questions/6013373/c-usage-of-static-within-a-struct – SomethingSomething

回答

3

与C++中可以有静态数据成员的结构不同,C结构体没有这样的结构。

因为这是任何人都可以使用一个共同的价值,只是声明它作为一个全球性的:

int my_struct_common_val = 42; 

struct my_struct { 
    ... 
}; 
+1

如果这是在一个头文件中,那么你将需要使用'extern int my_struct_common_val;'定义在一个'.c'文件中 –

相关问题