请问一下,c++中头文件被include一次就要被编译一次吗? 谢谢

[复制链接]
查看11 | 回复3 | 2011-11-24 16:23:33 | 显示全部楼层 |阅读模式
基本上是这样:头文件在编译初期就会被加入到引用它的cpp文件中去,c++工程的编译单位是单个cpp文件,编译器先把这些文件编译成为.o文件,然后在链接在一起,所以相当于include一次编译一次。 注意:一楼说得那个情况是说避免被重复include的问题,我说得是不重复的情况下,实际被include的次数!...
回复

使用道具 举报

千问 | 2011-11-24 16:23:33 | 显示全部楼层
头文件在预编译阶段,插入到C文件中。那个文件include,插入到那个文件中。如果一个C文件多次include相同的头文件(包括直接和间接方式),会造成变量和函数的重复定义,这次编译就会报重复定义错误。error : redefinition;...
回复

使用道具 举报

千问 | 2011-11-24 16:23:33 | 显示全部楼层
使用预编译开关就不会了啊每个头文件都#ifndef HFILE_#define HFILE_/*your code*/#endif范例里HFILE_根据头文件名变化吧,确保每个头文件中这种宏名不一样就可以了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行