C語言中宏的定義與使用
三種類型的預處理指令
宏定義
宏是比較常用的一種預處理指令,這裏我們主要討論帶參數的宏。
帶參數的宏(函數式宏)定義如下:
#define EXAMPLE(x,y,z) 替換列表
注意:在宏的名字和左括號之間沒有空格。
宏的優點:
-
程序可能會更快一些;
-
宏更同意。
宏的缺點:
-
編譯後代碼通常會變大。
-
宏的參數沒有類型檢查。
-
無法用指針來指向一個宏。
-
宏可能會不止一次地計算它的參數。
文件包含
條件編譯
適用於預處理指令的規則
-
指令都以 # 開始
-
在指令的符號之間可以插入任意數量的空格和水平製表符。
-
指令總是在第一個換行符處結束,除非明確地指明要延續。
-
指令可以出現在程序的任何地方。
-
註釋可以與指令放在同一行。
# include<stdio.h>
# define PRINT_INT(n) printf(#n " = %d\n", n)
# define PRINT_CHAR(s) printf(#s "%s\n",s)
int main(int argc,char *argv[]){
int i = 4 , j = 5;
char str[] = "Ivan";
PRINT_INT(i/j);
PRINT_CHAR(str);
return 0;
}
未完待續… …