struct里面的静态变量在哪里?

时间:2012-04-03 07:23:48

标签: c static struct

在C中,如果我在局部结构中声明一个静态变量,那么静态变量放在哪里? 由于struct在堆栈中,静态变量也会在堆栈中吗?

2 个答案:

答案 0 :(得分:10)

  

如果我在本地结构中声明一个静态变量

在当前的C 中,关键字static在结构中没有意义。你应该从编译器得到一个错误。


如果用“static”表示“未使用malloc分配”:结构的成员总是存储在与结构其余部分相同的位置。如果所述成员是指针,则它可以指向同一区域中的内存。

答案 1 :(得分:3)

在C ++中,静态变量将在您第一次使用它们的类时初始化。在C中,它们是不允许的,因为C编译器需要将整个结构存储在相同类型的内存中。关于他们的存储,请参阅Where are static variables stored (in C/C++)?