iOS培訓------我的c語言筆記,期待與您交流!
其實在C語言的遠行過程中,有這樣一個流程,
編譯:C----〉可執行文件(可以運行的)
1:.C------.i 預處理(之前和之後還是C語法)
2: .i-------.s 編譯(之前是C語法,之後是匯編語法)
3: .s------.o 匯編
4: .o------可執行程序 鏈接
下面我們就來說說一說第一個步驟預處理階段:
二:預處理中宏的定義無參宏定義
#define M (x+y+3+xy)帶參宏定義
#define M(x,y) (x+xy+3+xy)三:宏的使用main(){
int Num = M; int Num2 = M(2,5); printf("%d, %d", Num, Num2);
}這裡我們就使用了上面定義的兩個宏,也就是實現了預處理命令的使用
e>預定義的宏(不能用undef取消)
C標准中指定了一些預定義的宏,對於編程經常會用到。下面這個表中就是一些常常用到的預定義宏。
__DATE__
進行預處理的日期(“Mmm dd yyyy”形式的字符串文字)
__FILE__
代表當前源代碼文件名的字符串文字
__LINE__
代表當前源代碼中的行號的整數常量
__TIME__
源文件編譯時間,格式微“hh:mm:ss”
__func__
當前所在函數名
對於__FILE__,__LINE__,__func__這樣的宏,在調試程序時是很有用的,因為你可以很容易的知道程序運行到了哪個文件的那一行,是哪個函數。
下面一個例子是打印上面這些預定義的宏的。