头文件中的常量定义问题
c++吧
全部回复
仅看楼主
level 11
gameloftyou 楼主
现有一个头文件被多个cpp包含,为什么下面两个都在头文件中时第一个能通过,第二个却提示重复顶义?
const char a = 56;
const char *b = "adfsdf";
[揉脸]
2013年04月12日 15点04分 1
level 12
const 限定的对象默认具有 internal linkage。
2013年04月12日 15点04分 2
[吐舌]话说我之前还真不知道const是作为文件局部变量对待的
2013年04月12日 16点04分
level 9
第二个可不是什么所谓的“const 对象”
2013年04月12日 15点04分 3
[呵呵]明白了,第二个const修饰的不是b
2013年04月12日 16点04分
level 12
具有 internal linkage 的变量可以在头文件中定义。其中:static 修饰的非类成员对象具有 internal linkage,inline 函数在 c++ 中具有 external linkage 但是要求在不同翻译单元中都有定义,unamed namespace 中的成员具有 internal linkage,const 限定的非类成员变量缺省具有 internal linkage(我记得可以显式 extern)。局部对象(严格的说法是 scoped objects)没有 linkage。
2013年04月12日 20点04分 4
[傻笑]谢谢小耗子
2013年04月13日 01点04分
1