首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于重复定义的疑惑解决思路

2012-03-12 
关于重复定义的疑惑到目前我的理解:重复定义的错误都是发生在链接阶段,在多个obj文件里发现了具有相同名称

关于重复定义的疑惑
到目前我的理解:重复定义的错误都是发生在链接阶段,   在多个obj文件里发现了具有相同名称的对象或函数.现有如下疑问:
1.发生重复定义的情况是不是只是出现在全局变量的身上.
2.加了static类型控制符就允许在多个obj文件里出现相同的变量名,是因为编译器在遇到static时会忽律重复定义的情况还是有其它的解释?

[解决办法]
1. 重定义不仅仅在链接阶段发生,也不只是全局变量,编译时也会报重定义错误,函数、类、结构,局部变量如果在每个translate unite中你定义了2遍的话,都会发生重定义错误。

2. 加上static后,编译时就不会把该变量的符号导出为.global,这样在链接的时候,别的obj就不会看到它的名字,也就互不干扰。

热点排行