.h头文件避免重定义

Posted LC编程开发者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.h头文件避免重定义相关的知识,希望对你有一定的参考价值。

C语言提供了.h头文件,可以在.h头文件中声明函数或定义宏等信息。假设test.h头文件,在该头文件中定义如下宏:

//定义一个宏

#define NUM 100

       那么,有多个.c头文件都包含引用test.h头文件,此时,引起NUM宏的多重定义。为了避免这个文件,test.h头文件的内容应该如下:

#ifndef _TEST_H_    //if判断,如果没有定义 _TEST_H_宏,就执行下面的语句,与if一样;

#define _TEST_H_  //定义 _TEST_H_ 宏

//定义一个宏

#define NUM 100

#endif

       此时,通过#ifndef来判断 _TEST_H_ 宏是否已经定义,如果还没有定义,就执行代码:

#define _TEST_H_

//定义一个宏

#define NUM 100

       此时,定义 _TEST_H_ 宏,并定义 NUM 宏。

       那么,当其他.c源文件包含 test.h头文件的时候,通过 #ifndef 判断 _TEST_H_ 宏已经定义,就不再执行代码:

#define _TEST_H_

//定义一个宏

#define NUM 100

       此时,就不再进行多次定义 NUM 宏,从而保证 test.h头文件的代码只编译定义一次。避免了test.h头文件多重包含,导致test.h头文件中的数据重复定义。

8 总结

       构建一个大型软件的时候,需要把软件的各个功能模块进行划分。那么,不同的功能模块就可以使用不同的文件来存放。便于代码的管理。

       所以,重点了解和掌握.c源文件和.h头文件的搭配使用。当构建一个大型复杂软件的时候,就可以划分不同的功能模块,不同的功能模块使用不同的.c源文件和.h头文件进行封装。

       软件设计的模块化程度越高,扩展性就越强。

读者要仔细分析,掌握好每一个知识点,然后,自己总结出对该知识点的理解。自己总结出来的知识,理解才深刻,才是自己掌握的知识。

韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

以上是关于.h头文件避免重定义的主要内容,如果未能解决你的问题,请参考以下文章

#ifndef #define #endif

C++头文件为什么要加#ifndef #define #endif

在多个编译单元的情况下,避免由于包含相同的头文件而导致多个定义

(40)头文件

如何避免与 Windows 头文件中定义的宏发生名称冲突?

头文件重复包含