C語言標準預定義的巨集
C語言標準指定了一些預定義巨集, 常用的如下:
__DATE__ 進行預處理的日期,表示為Mmm dd yyyy 形式的字串常量
__FILE__ 代表當前原始碼檔名的字串
__LINE__ 代表當前原始碼檔案中行號的整數常量
__STDC__ 設定為1時,表示該實現遵循C標準
__STDC_HOSTED__ 為本機環境設定為,否則設為0
__STDC_VERSION__ 為C99時設定為199901L
__TIME__ 原始檔的編譯時間
__func__ C99提供的,為所在函式名的字串
__VA_ARGS__: C99可變引數巨集,用法如下:
例如:
示例1:
#define debug(...) printf(__VA_ARGS__)
|
(...)代表一個可以變化的引數表。使用保留名 __VA_ARGS__ 把引數傳遞給巨集。當巨集的呼叫展開時,實際的引數就傳遞給 printf()了。例如:
debug( "X = %d\n" , x);
|
會被巨集替換成:
printf ( "X = %d\n" , x);
|
示例2:
#define debug(format, ...) fprintf (stderr, format, __VA_ARGS__)
這裡,'...'指可變引數。這類巨集在被呼叫時,...被表示成零個或多個符號。當被呼叫時,巨集替換以後,那些符號序列將代替裡面的__VA_ARGS__識別符號