静态内存布局的 BSS 部分[应该]用于“未初始化的全局变量”或“全局变量设置为 0”。
\n我正在运行一些测试,突然注意到局部静态变量也在增加 BSS 段的大小。
\n例子 :-
\n在任何静态变量之前
\nint main (int argc, char argv[])\n{\n return 0;\n}\nRun Code Online (Sandbox Code Playgroud)\ndata/repos/e-c \n\xe2\x9d\xaf size a.out \n text data bss dec hex filename\n 1418 544 8 1970 7b2 a.out\nRun Code Online (Sandbox Code Playgroud)\n静态变量之后
\nint main (int argc, char *argv[])\n{\n static int a, b, c;\n return 0;\n}\nRun Code Online (Sandbox Code Playgroud)\ndata/repos/e-c \n\xe2\x9d\xaf !s\nsize a.out \n text data bss dec hex filename\n 1418 544 16 1978 7ba a.out\nRun Code Online (Sandbox Code Playgroud)\n这些变量肯定不是全局变量,那为什么BSS段会增加呢?或者“未初始化的全局变量的段”的想法不完全正确?
\n目前我使用的是 …