2. 巨集展開過程
巨集定義分為2類, 不帶引數的巨集定義 和 帶引數的巨集定義
形式:使用乙個指定的識別符號來代表乙個字串
#define 識別符號 字串
例如
#define pi 3.14159265
作用:程式中但凡使用到pi
的地方全部都會用3.14159265
來替換,主要用途使用乙個簡單識別符號來代替乙個長的字串
形式:帶引數的巨集定義不是僅僅進行簡單的字串替換,還要進行引數替換
#define 識別符號(參數列) 字串
例如
/**
* @def cmo_max
* @brief return larger value of two provided expressions.
*/#define cmo_max(a, b) ((a) < (b) ? (b) : (a))
作用:對帶引數的巨集定義是這樣進行展開置換的在程式中如果有帶實參的巨集,如上,則按#define指令行中指定的字串從左到右進行置換。
gcc -e 只啟用預處理,這個不生成檔案, 你需要把它重定向到乙個輸出檔案裡面。
例如用法
#include
/* 不帶引數巨集 */
#define pi 3.14159265
/* 帶引數巨集 */
#define cmo_max(a, b) ((a) < (b) ? (b) : (a))
int main (
void
)// gcc -e hello.c > hello_e.txt
// gcc -e hello.c | more
使用命令gcc -e hello.c > hello_e.txt
, 檢視gcc預處理的結果
巨集定義基本使用
參照c語言的預處理命令簡介 define 定義乙個預處理巨集 undef 取消巨集的定義 include 包含檔案命令 include next 與 include相似,但它有著特殊的用途 if 編譯預處理中的條件命令,相當於c語法中的if語句 ifdef 判斷某個巨集是否被定義,若已定義,執行隨後...
C語言巨集定義的使用
寫好c語言,漂亮的巨集定義很重要,使用巨集定義可以防止出錯,提高可移植性,可讀性,方便性 等等。下面列舉一些成熟軟體中常用得巨集定義。1,防止乙個標頭檔案被重複包含 ifndef comdef h define comdef h 標頭檔案內容 endif 2,重新定義一些型別,防止由於各種平台和編譯...
C語言巨集定義
c語言有很多預處理命令,如包含命令 include,巨集定義命令 define。預處理命令在程式編譯之前被編譯器處理,而巨集定義也在此時被替換。或c 語言源程式中允許用乙個識別符號來表示乙個字串,稱為 巨集 被定義為 巨集 的識別符號稱為 巨集名 在編譯預處理時,對程式中所有出現的 巨集名 都用巨集...