静态vs函数静态vs成员函数静态的C ++内存布局

时间:2014-04-23 20:51:22

标签: c++ memory static

在某些Class.cpp文件中考虑3个不同的静态数组:

static char array0[8];

/*static*/ char Class::s_array1[8]; //static declared in Header Class.h

void Class::DoStuff()
{
    static char f_array2[8];
}

是否清楚地定义了3个数组在内存中是否相互连续,以及在哪个顺序? (或者它取决于编译器/平台)

2 个答案:

答案 0 :(得分:2)

数组在内存中总是连续的,但是没有定义它们最终相对于彼此的位置。

答案 1 :(得分:2)

这完全取决于编译器和平台。如果它在Linux平台上运行,您可以猜测这些数组将位于.bss部分。

显然,每个数组在内存中都是连续的。这是强制性的。