一、 内容概述
本文主要介绍c语言中条件编译相关的预编译指令,包括#define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif、defined。
![40c4274dfe6ebb022d825c0febb2bded.png](https://img-blog.csdnimg.cn/img_convert/40c4274dfe6ebb022d825c0febb2bded.png)
二、条件编译
条件编译是根据实际定义宏(某类条件)进行代码静态编译的手段。可根据表达式的值或某个特定宏是否被定义来确定编译条件。
最常见的条件编译是防止重复包含头文件的宏,形式跟下面代码类似:
1 #ifndef ABCD_H2 #define ABCD_H3 4 // ... some declaration codes5 6 #endif // #ifndef ABCD_H
在实现文件中通常有如下类似的定义:
1 #ifdef _DEBUG 2 3 // ... do some operations 4 5 #endif 6 7 #ifdef _WIN32 8 9 // ... use Win32 API10 11 #endif
这些都是条件编译的常用情境。
三、条件编译中使用的预编译指令
#define 定义一个预处理宏
#undef 取消宏的定义
#if 编译预处理中的条件命令,相当于C语法中的if