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