小编C-H*_*che的帖子

全局常量变量的 G++ 名称修改

有人可以帮助我理解 gcc 名称修改约定吗?

考虑以下测试代码

#include <stdio.h>

const int x = 42;
int y = 42;

int main( int argc, const char* argv[] )
{
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

运行时,nm我得到以下(令人惊讶的?)结果:

0000000000000000 T main
0000000000000000 D y
0000000000000000 r _ZL1x
Run Code Online (Sandbox Code Playgroud)

这表明编译器只修改放置在只读部分中的全局变量。我希望编译器要么破坏 ALL 要么没有全局变量

这是预期的行为吗?对我来说,它看起来不一致。

c c++ gcc g++ name-mangling

5
推荐指数
1
解决办法
2236
查看次数

标签 统计

c ×1

c++ ×1

g++ ×1

gcc ×1

name-mangling ×1