1. 程式人生 > 其它 >C語言預處理指令總結

C語言預處理指令總結

預處理指令是以#號開頭的程式碼行,# 號必須是該行除了任何空白字元外的第一個字元。# 後是指令關鍵字,在關鍵字和 # 號之間允許存在任意個數的空白字元,整行語句構成了一條預處理指令,該指令將在編譯器進行編譯之前對原始碼做某些轉換。

下面是本章涉及到的部分預處理指令:

指令 說明
# 空指令,無任何效果
#include 包含一個原始碼檔案
#define 定義巨集
#undef 取消已定義的巨集
#if 如果給定條件為真,則編譯下面程式碼
#ifdef 如果巨集已經定義,則編譯下面程式碼
#ifndef 如果巨集沒有定義,則編譯下面程式碼
#elif 如果前面的#if給定條件不為真,當前條件為真,則編譯下面程式碼
#endif 結束一個#if……#else條件編譯塊

預處理功能是C語言特有的功能,它是在對源程式正式編譯前由預處理程式完成的,程式設計師在程式中用預處理命令來呼叫這些功能。

巨集定義可以帶有引數,巨集呼叫時是以實參代換形參,而不是“值傳送”。

為了避免巨集代換時發生錯誤,巨集定義中的字串應加括號,字串中出現的形式引數兩邊也應加括號。

檔案包含是預處理的一個重要功能,它可用來把多個原始檔連線成一個原始檔進行編譯,結果將生成一個目標檔案。

條件編譯允許只編譯源程式中滿足條件的程式段,使生成的目標程式較短,從而減少了記憶體的開銷並提高了程式的效率。

使用預處理功能便於程式的修改、閱讀、移植和除錯,也便於實現模組化程式設計。