有人可以帮我理解 gcc 名称修改约定吗?
考虑以下测试代码
#include <stdio.h>
const int x = 42;
int y = 42;
int main( int argc, const char* argv[] )
{
return 0;
}
运行时,nm
我得到以下(令人惊讶的?)结果:
0000000000000000 T main
0000000000000000 D y
0000000000000000 r _ZL1x
这表明编译器只会破坏放置在只读部分中的全局变量。我希望编译器能够破坏所有或没有全局变量
这是预期的行为吗?对我来说,它看起来不一致。