include问题

[复制链接]
1403|7
 楼主| sinadz 发表于 2013-8-29 19:30 | 显示全部楼层 |阅读模式
比如一个头文件base.h 被1.cpp 2.cpp引用
那么按照include原地展开的方式 生成的1.obj 2.obj分别有一套base.h的内容?毕竟他们编译的过程相对独立
在链接过程中 这种重复会被去掉么?
无冕之王 发表于 2013-8-29 19:35 | 显示全部楼层
非 static inline 全局函数会 链接冲突的
非 static 变量也会 链接冲突
yybj 发表于 2013-8-29 19:56 | 显示全部楼层
不一定会产生重复。比如外部函数声明int add(int, int); 在编译的效果上不产生符号,只是导入一个符号。

如果有重复这种重复不会去掉,你需要自己加上static或者别的东西,使他不产生两个同名符号就行了。
秋天落叶 发表于 2013-8-29 20:13 | 显示全部楼层
头文件是不是可以加个#pragma once就可以避免重复了
gxgclg 发表于 2013-8-30 18:47 | 显示全部楼层
秋天落叶 发表于 2013-8-29 20:13
头文件是不是可以加个#pragma once就可以避免重复了

是的,很实用的技巧
pkat 发表于 2013-8-30 18:59 | 显示全部楼层
初学者似乎都会有这样的疑惑
火箭球迷 发表于 2013-8-30 19:09 | 显示全部楼层
很有代表性的一个问题
vivilzb1985 发表于 2013-11-25 20:35 | 显示全部楼层
借鉴学习啦,我一般都没怎注意这样的问题的啊:L
您需要登录后才可以回帖 登录 | 注册

本版积分规则

304

主题

2313

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部