怎样防止头文件被重复引用

方式一:条件编译:

#ifndef 
#define

......//一些声明语句 

#endif

这种方式依赖于宏名称不能冲突,而且这种方式可以保证同一个文件不被包含多次,也能保证内容完全相同的两个文件不会不小心同时包含。但是,如果宏名称相同,就会明明你包含了头文件,却找不到源文件。条件编译的有点事,跨平台效果好。
例:

//file1h
#define __BOOK_H_

现在有另外一个file2.book.h

#ifnedf _BOOK_H__
#define _BOOK_H__

//program

#endif // _BOOK_H__

在你的主函数里包含了该文件:

#include "file1.h”
#include"book.h"

预编译阶段,把file1里的宏展开,就得到了一个BOOK_H_的宏,这个时候就不会在包含book.h这个头文件了

方式二:#pragma once
这种方式又叫c和c++杂注,优点是,简单,没有宏定义冲突的情况,但是不跨平台,而且如果两个内容完全相同的文件被包含,不会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值