在某些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个数组在内存中是否相互连续,以及在哪个顺序? (或者它取决于编译器/平台)
答案 0 :(得分:2)
数组在内存中总是连续的,但是没有定义它们最终相对于彼此的位置。
答案 1 :(得分:2)
这完全取决于编译器和平台。如果它在Linux平台上运行,您可以猜测这些数组将位于.bss部分。
显然,每个数组在内存中都是连续的。这是强制性的。