静态缓冲区在哪里分配?

Ore*_*ren 4 c static

假设我有一个文件test.c,其中包含:

char buffer1[1024];

int somefunction()
{
      char buffer2[1024];
      // do stuff
}
Run Code Online (Sandbox Code Playgroud)

现在我知道buffer2是在属于某些函数调用的帧上的堆栈上分配的,但是在哪里分配了buffer1?

md5*_*md5 8

这些变量通常在BSS上(源代码中没有显式初始化的变量,因此它们默认值为0)或数据段(初始化数据).这里buffer1是未初始化的,因此它可能会在BSS段上分配,该段始于数据段的末尾.

来自bravegnu网站:

在此输入图像描述