C 的預處理器不是編譯器的組成部分,它是編譯過程中一個單獨的步驟,它們會指示編譯器在實際編譯之前完成所需的預處理。
C 語言的預處理指令是以 # 號開頭的代碼行,# 後是指令關鍵字,整行語句構成了一條預處理指令,該指令將在編譯器進行編譯之前對源代碼做某些轉換。
下面是一些常見預處理命令的使用介紹。
#include包含一個源代碼文件
#include <stdio.h>
即從系統庫中獲取 stdio.h,並添加文本到當前的源文件中。
#define定義宏
#undef取消已定義的宏
#define MAX_NUM 99
#undef MAX_NUM
先定義宏 MAX_NUM,再取消該宏的定義。
#if如果給定條件為真,則編譯下面代碼
#elif如果前面的#if給定條件不為真,當前條件為真,則編譯下面代碼
#else 否則 (與#if對應)
#endif結束對應的#if件編譯塊
這幾條指令適用於條件編譯,包括下面兩個。
#ifdef如果宏已經定義,則編譯下面代碼
#ifndef如果宏沒有定義,則編譯下面代碼
#ifdef DEBUG
/* Your debugging message */
#endif
如果定義了 DEBUG,則執行下面的處理語句。
#error 停止編譯並顯示錯誤信息
如果預處理方面有錯誤,那麼就會打印#error指令後面的文本內容。
閱讀更多 算法集市 的文章