#ifdef 与 #ifndef
时间: 2024-06-20 19:00:54 浏览: 82
#ifdef,#else,#endif和#ifndef的用法
#ifdef 和 #ifndef 是预处理器指令,在C/C++编程中用于条件编译,它们在头文件(.h)中被广泛使用,以控制特定代码块的包含或排除,避免多次包含同一段可能导致问题的代码。
1. #ifdef: 这个指令用于检查一个宏是否已经被定义。如果宏存在(即之前有其他地方使用 #define 定义过),那么它所包含的代码将会被执行。如果宏未定义,那么这部分代码会被编译器忽略。
```cpp
#ifdef MACRO_NAME
// 宏MACRO_NAME已经被定义,执行这部分代码
#endif
```
2. #ifndef: 这个指令则相反,它会检查一个宏是否未被定义。如果宏未定义,那么它包含的代码将被执行;如果宏已经定义,代码将被忽略。这通常用于防止循环包含,例如:
```cpp
#ifndef MACRO_NAME
// 宏MACRO_NAME未被定义,执行这部分代码并定义它
#define MACRO_NAME
#endif
```
在实际编程中,如果想在某个平台或配置下启用某些特性,可能会定义相应的宏,然后用 #ifdef 或 #ifndef 来控制包含特定代码的条件。例如,使用 #ifndef _WIN32 来检查是否在Windows平台上编译。
阅读全文