为什么在C ++头文件中使用#ifndef和#define?

为什么在C ++头文件中使用#ifndef和#define?

我一直在头文件的开头看到这样的代码:


#ifndef HEADERFILE_H

#define HEADERFILE_H

并在文件的最后是


#endif

这样做的目的是什么?


慕妹3146593
浏览 1461回答 3
3回答

长风秋雁

#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

眼眸繁星

这可以防止多次包含相同的头文件。#ifndef __COMMON_H__#define __COMMON_H__//header file content#endif假设您已将此头文件包含在多个文件中。因此,第一次没有定义__COMMON_H__时,它将被定义并包含头文件。下次定义__COMMON_H__时,它将不再包含。
打开App,查看更多内容
随时随地看视频慕课网APP