在C++中,#ifndef
是一个预处理指令,用于防止头文件被多次包含。它可以处理复杂的预处理逻辑,例如检查宏是否已经定义,或者根据条件包含不同的代码片段。以下是一些示例:
#ifndef SOME_MACRO
#define SOME_MACRO
// 你的代码
#endif // SOME_MACRO
#ifdef CONDITION1
// 当CONDITION1为真时,包含这部分代码
#endif
#ifdef CONDITION2
// 当CONDITION2为真时,包含这部分代码
#endif
#if defined(CONDITION1) && defined(CONDITION2)
// 当CONDITION1和CONDITION2都为真时,包含这部分代码
#endif
#if defined(CONDITION1)
#if defined(CONDITION2)
// 当CONDITION1和CONDITION2都为真时,包含这部分代码
#endif
#endif
!
取反条件:#ifndef SOME_MACRO
// 当SOME_MACRO未定义时,包含这部分代码
#endif
#else
和#elif
处理多个条件:#ifdef CONDITION1
// 当CONDITION1为真时,包含这部分代码
#elif defined(CONDITION2)
// 当CONDITION1为假,但CONDITION2为真时,包含这部分代码
#else
// 当CONDITION1和CONDITION2都为假时,包含这部分代码
#endif
通过这些方法,你可以在C++中使用#ifndef
处理复杂的预处理逻辑。