有简单的文件
a.cpp:
//a.cpp
extern const int n = 8;
const int b = 10;
编译:
g++ -c a.cpp -fPIC
使用readelf -sw
检查:
Symbol table '.symtab' contains 11 entries:
Num: Value Size Type Bind Vis Ndx Name
...
6: 0000000000000004 4 OBJECT LOCAL DEFAULT 4 _ZL1b
...
9: 0000000000000000 4 OBJECT GLOBAL DEFAULT 4 n
...
为什么b
const int名称被破坏,但extern全局变量const int n
名称没有被破坏?
标准是否定义了这种行为(不是修改名称)还是g++
功能?