ifdef和endif的使用

`#ifdef` 和 `#endif` 是 C/C++ 预处理指令,用于条件编译。它们允许在编译时根据某个宏是否被定义来决定包含哪段代码。以下是它们的使用方法:
`#ifdef` 语法
```c#ifdef 宏名程序段1#else程序段2#endif```
如果 `宏名` 被定义,则编译 `程序段1`。
如果 `宏名` 未被定义,则编译 `程序段2`。
`#ifndef` 语法
```c#ifndef 宏名程序段1#else程序段2#endif```
如果 `宏名` 未被定义,则编译 `程序段1`。
如果 `宏名` 被定义,则编译 `程序段2`。
示例
```c#include int main() {#ifdef DEBUG std::cout << \"Beginning execution of main()\" << std::endl;#endif return 0;}```
在这个例子中,如果 `DEBUG` 宏被定义,程序将输出 \"Beginning execution of main()\"。
注意事项
`#ifdef` 和 `#endif` 必须成对使用。
在头文件中使用 `#ifndef` 和 `#define` 可以防止头文件被多次包含,避免重复定义错误。
可以组合使用 `#if`、`#ifdef`、`#ifndef` 等指令,实现更复杂的条件编译逻辑。
条件编译常用于适配不同平台、操作系统或编译器,提高代码的可移植性和灵活性。然而,过度使用可能导致代码难以维护,因此应谨慎使用


