C++ 如何定义头文件?为何要用到ifndef和#define,#endif?有何用
答案:3 悬赏:60 手机版
解决时间 2021-01-25 23:46
- 提问者网友:你给我的爱
- 2021-01-25 02:38
C++ 如何定义头文件?为何要用到ifndef和#define,#endif?有何用
最佳答案
- 五星知识达人网友:蓝房子
- 2021-01-25 04:13
//b.h文件
#include "a.h"
//c.h文件
#include "a.h"
#include "b.h"
在c.h文件中,a.h文件被包含了两次.而C++规定在同一文件中只能将同一个头文件包含一次.#ifndef,#define,#endif可以避免多次包含同一头文件.
//新的c.h文件
#ifndef C_H_H
#define C_H_H
#include "a.h"
#include "b.h"
...
#endif
编译器连接c.h文件时,第一次遇到a.h文件,名称C_H_H还没有被定义,编译器将查看#ifndef和#endif之间的内容.如果在同一文件中遇到其他包含a.h的代码,编译器将知道C_H_H名称已经被定义了,从而忽略其中的内容.
#include "a.h"
//c.h文件
#include "a.h"
#include "b.h"
在c.h文件中,a.h文件被包含了两次.而C++规定在同一文件中只能将同一个头文件包含一次.#ifndef,#define,#endif可以避免多次包含同一头文件.
//新的c.h文件
#ifndef C_H_H
#define C_H_H
#include "a.h"
#include "b.h"
...
#endif
编译器连接c.h文件时,第一次遇到a.h文件,名称C_H_H还没有被定义,编译器将查看#ifndef和#endif之间的内容.如果在同一文件中遇到其他包含a.h的代码,编译器将知道C_H_H名称已经被定义了,从而忽略其中的内容.
全部回答
- 1楼网友:北城痞子
- 2021-01-25 04:39
假如头文件文件名为head.h,则在头文件开头一般会定义:
#ifndef HEAD_H
#define HEAD_H
文件末尾添加
#endif
头文件可以通过#include"head.h"来包含,编译器预处理时,将该文件在此处展开。如果没有使用#ifndef、#define、#endif,程序有可能出现重复包含的可能。通过简单的预处理命令,可以有效的接触重复包含的问题,同时降低了编译器的负担,提高了编译效率。
#ifndef HEAD_H
#define HEAD_H
文件末尾添加
#endif
头文件可以通过#include"head.h"来包含,编译器预处理时,将该文件在此处展开。如果没有使用#ifndef、#define、#endif,程序有可能出现重复包含的可能。通过简单的预处理命令,可以有效的接触重复包含的问题,同时降低了编译器的负担,提高了编译效率。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯