考虑一些 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 个数组是否在内存中相对于彼此连续,以及顺序是什么? (还是取决于编译器/平台)
最佳答案
数组在内存中始终是连续的,但未定义它们相对于彼此的结束位置。
关于静态 vs 函数静态 vs 成员函数静态的 C++ 内存布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23254926/