C语言头文件避免重复包含的方法技巧

C语言头文件避免重复包含的方法技巧,第1张

假定有以下几个头派禅枣文件及其包含关系为:

File1.h,file2.h,file3.h,file4.h,file5.h,main.cpp

那么:file3.h包含file1.h,file2.h,file4.h包含file1.h,file2.h,file5.h包含file3.h,file4.h。如许就会导致在file5中对file1和file2的反复包含,编译时就会报错。

解决方法:

1:应用#ifndef

#define

#endif

即每个文件在定义时都写成以下情势(以file1.h为例):

#ifndefH_FILE1

#defineH_FILE1

#include

#include

…..

#endif

File3.h:#ifndefH_FILE3

#defineH_FILE3

#include

#include

#inlcude”file1.h”

#include”file2.h”

…..

#endif

方法二:在每个文件的头部定义:#pragmaonce(用于解释本袭燃文件中的内容只应用一次)

例:fiel1.h:

#pragmaonce

#include

#include

…..

File3.h:

#pragmaonce

#include

#include

#include”file1.h”

…尘拆..

当1个C语言程序由 多个 源程序文件 组成时,由于每个 源程序文件 都有 #include <...>

#include "...h", 最终它们可能形成交叉 包含 和 重复包含 现象 而造成错误。

为了避免这种情况发生,可以 采用 定义宏 的方法 把各个头文件 包起来。

编译卖枣器 在正式编译的开始,现处理 宏 -- 也就是“预编译命令".

用 宏(#号开始的行) 把 头文件内容 包起来:

#ifndef _HEADER_One_H_ // 意思是:宏开始森尺行,如果还没有定义 _HEADER_One_H_ 则 进入,否则退出

#define _HEADER_One_H_//定义 _HEADER_One_H_//

header1.h

头文件内容

#endif // 宏结束行中春拆


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8213414.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存