C语言重复包括头文件(C语言的头文件)

本文讲的是C语言中头文件的重复,以及C语言中头文件对应的知识点。希望对你有帮助,也别忘了收藏这个站点。

这篇文章的列表: 1.C如何避免重复包含头文件? 2.C语言头文件中避免重复包含的方法和技巧。 3.如何利用C语言头文件中重复包含的问题? C如何避免重复包含头文件? #include通常不包含。cpp文件,如果有,一般也只包含static之类的函数,不会因为多重包含而导致链接问题。

为了防止重复包含,头文件中会有相应的处理,比如添加

#ifndef _STDIO_H_

#define _STDIO_H_

//真实头文件内容

#endif

这样在多次收录时,因为已经定义了_STDIO_H_所以第二次收录的内容会被忽略。

较新的C编译器也支持#pragma once,所以只要在头文件的开头写这句话,编译器在处理头文件时就不会多次包含。

避免C语言头文件中重复包含的方法和技巧 假设有以下头文件,它们的包含关系是:

文件1.h,文件2.h,文件3.h,文件4.h,文件5.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

#定义

#endif

也就是每个文件在定义的时候,都是按照以下情况来写的(以file1.h为例):

#ifndefH_FILE1

#defineH_FILE1

#包括

#包括

… ..

#endif

File3.h:#ifndefH_FILE3

#defineH_FILE3

#包括

#包括

#包含“文件1.h”

#包含“文件2.h”

… ..

#endif

方法二:在每个文件的文件头定义:#pragmaonce(只用来解释一次这个文件中的内容)。

示例:fiel1.h:

#pragmaonce

#包括

#包括

… ..

文件3.h:

#pragmaonce

#包括

#包括

#包含“文件1.h”

… ..

c语言头文件包含重复问题。如何使用inndef? #ifndef BASE_H//如果没有定义BASE_H,编译下面的代码。

#define BASE_H//定义这个宏

#endif

此编译指令用于每个。h文件。即使多次使用#include,也不会重复包含。

#ifndef BASE_H

如果#包括这个。H文件第一次,BASE_H没有定义,所以这个。H文件包含在内参与编译,同时定义了BASE_H。

后续#包括这个。H文件,因为BASE_H已经定义了,所以对应的#endif之前的代码不参与编译,所以不会有两个基本的信息结构。

-

除了包含头文件,ifdef还会用在其他地方,比如判断编译环境,

#ifndef _WIN64

#定义NULL 0

#否则

#定义NULL 0LL

#endif

对于C语言重复包括头文件的介绍就到此为止吧。感谢您花时间阅读本网站的内容。不要忘记在这个网站上搜索更多关于C语言头文件和C语言重复包括头文件的信息。

相关文章

发表新评论