一个小程序猿思考之路-头文件中#ifndef/#define/#endif作用和用法

编写自定义头文件时,原来就是随意的编写一些内容,但是很少去想过头文件的格式;

突然一天,发现自己的头文件里有这么几个小东西 ;

#ifndef DAO_H
#define DAO_H

...

#endif

上面这个有什么详细的意义?

恍惚的记着是为了避免头文件多次调用,造成多次编译,引起重定义的错误;

 

然后找了下

#ifndef _TEST_H
#define _TEST_H//一般是文件名的大写
头文件结尾写上一行:#endif

这样一个工程文件里同时包含两个test.h时,就不会出现重定义的错误了。

 

分析:当第一次包含test.h时,由于没有定义_TEST_H,条件为真,这样就会包含(执行)#ifndef _TEST_H和#endif之间的代码,当第二次包含test.h时前面一次已经定义了_TEST_H,条件为假,#ifndef _TEST_H和#endif之间的代码也就不会再次被包含,这样就避免了重定义了。主要用于防止重复定义宏和重复包含头文件

 

posted on 2017-02-12 16:30  aiyq195  阅读(193)  评论(0编辑  收藏  举报

导航