关于C语言中头文件重复包含问题

由于现在工程的代码量比较大,多个文件相互进行#include包含头文件时,很容易将头文件重复包含,当重复包含头文件时,预处理器会重复读入整个头文件,且重复使用头文件,使得编译不通过。

#ifndef _HEADERNAME_H
#define _HEADERNAME_H 1
/*
** All the stuff that you want in the header file
*/
#endif

那么,多重包含的危险就被消除了。当头文件第1次被包含时,它被正确处理,符号_HEADERNAME_H被定义为1.如果头文件再次被包含,通过条件编译,它的所有内容被忽略。符号_HEADERNAME_H按照被包含文件的文件名进行取名,以避免由于其它头文件使用相同的符号引起冲突。
注意前一个例子中的定义也可以写作

#define _HEADERNAME_H

它的效果完全一样。尽管它现在的是一个空字符串而不是“1”,但这个符号仍被定义。
但是,你必须记住预处理器仍将读入整个头文件,即使这个文件的内容会被忽略,这将拖慢编译速度。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值