在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
處理復雜的預處理邏輯。