为什么在C ++头文件中使用#ifndef和#define?我一直在头文件的开头看到这样的代码:#ifndef HEADERFILE_H#define HEADERFILE_H并在文件的最后是#endif这样做的目的是什么?
3 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
#ifndef <token>
/* code */
#else
/* code to include if the token is defined */
#endif
#ifndef检查给定标记是#defined在文件中还是在包含文件中更早; 如果没有,它包括它和关闭之间的代码#else,或者如果没有#else存在,#endif语句。#ifndef通常用于通过在包含文件后定义令牌并检查令牌未设置在该文件的顶部来使头文件具有幂等性。
#ifndef _INCL_GUARD
#define _INCL_GUARD
#endif
眼眸繁星
TA贡献1873条经验 获得超9个赞
这可以防止多次包含相同的头文件。
#ifndef __COMMON_H__
#define __COMMON_H__
//header file content
#endif
假设您已将此头文件包含在多个文件中。因此,第一次没有定义__COMMON_H__时,它将被定义并包含头文件。
下次定义__COMMON_H__时,它将不再包含。
- 3 回答
- 0 关注
- 1460 浏览
添加回答
举报
0/150
提交
取消