efine to prevent recursive inclusion
时间: 2024-11-12 09:41:50 浏览: 34
#ifndef
和 #define
是 C/C++ 中用于防止循环包含(recursive inclusion)的关键字。当你在一个文件中定义了一个宏(通常是头文件),为了避免在同一文件内部多次包含导致重复定义,可以使用以下结构:
#ifndef MACRO_NAME
#define MACRO_NAME
// 宏的定义内容,这里可能是函数声明、结构体定义等
...
#endif // #ifndef MACRO_NAME
这里的 MACRO_NAME
是你想要保护的宏名称。当头文件第一次被包含时,#ifndef MACRO_NAME
检查这个宏是否已经定义(即是否之前被包含过)。如果没定义,就进入宏定义区域。宏的内容会被处理并在当前作用域内插入。然后,在 #endif
行后,#define MACRO_NAME
使得下次包含时不执行宏定义区域的内容,因为宏已经被定义过了。
这样做的目的是确保每个源文件只有一份给定宏的定义,避免潜在的冲突和二义性。每当其他文件试图包含这个头文件时,它会先检查宏是否已存在,如果存在则跳过剩余的代码,不会再次定义。
相关推荐





