1. 程式人生 > >預處理命令詳解

預處理命令詳解

1.#define指令
#define預處理指令是用來定義巨集的。該指令最簡單的格式是:首先神明一個識別符號,然後給出這個識別符號代表的程式碼。在後面的原始碼中,就用這些程式碼來替代該識別符號。這種巨集把程式中要用到的一些全域性值提取出來,賦給一些記憶識別符號。
#defineMAX_NUM10
intarray[MAX_NUM];
for(i=0;i<MAX_NUM;i++)/*……*/

在 這個例子中,對於閱讀該程式的人來說,符號MAX_NUM就有特定的含義,它代表的值給出了陣列所能容納的最大元素數目。程式中可以多次使用這個值。作為 一種約定,習慣上總是全部用大寫字母來定義巨集,這樣易於把程式紅的巨集識別符號和一般變數識別符號區別開來。如果想要改變陣列的大小,只需要更改巨集定義並重新編 譯程式即可。
巨集表示的值可以是一個常量表達式,其中允許包括前面已經定義的巨集識別符號。例如:
#defineONE1
#defineTWO2
#defineTHREE(ONE+TWO)
注意上面的巨集定義使用了括號。儘管它們並不是必須的。但出於謹慎考慮,還是應該加上括號的。例如:
six=THREE*TWO;
預處理過程把上面的一行程式碼轉換成:
six=(ONE+TWO)*TWO;
如果沒有那個括號,就轉換成six=ONE+TWO*TWO;了。
巨集還可以代表一個字串常量,例如:
#defineVERSION"Version1.0Copyright(c)2003"