1. 背景介绍
C语言中存在预处理器, 也就是编译过程的第一步(称为预处理或者预编译).
这个过程处理以 #
的指令, 并得到不包含 #
的 .i
文件.
预处理的内容包含以下三个:
# 宏定义
#define
# 文件包括
#include
# 条件编译
#if
#ifdef
#ifndef
#if defined
#if !defined
#elif
#else
#endif
#undef
2. 条件编译
常见的条件编译三种形式:
- 第一种形式:
#if defined(或者是ifdef)<标识符(条件)> # ifdef只能判断一个, defined() 则可以连起来判断多个
<程序段1>
[#else
<程序段2>]
#endif
- 第二种形式:
#if !defined(或者是ifndef)<标识符(条件)>
<程序段1>
[#else
<程序段2>]
#endif
- 第三种方式:
#ifdef …
[#elif … ]
[#elif …]
#else …
#endif