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