下面這些巨集常量定義正確嗎?
預處理器不會進行語法檢查只是簡單的文字替換,即這些巨集定義都正確#define error -1
#define pathl "d:\test\test.c"
#define path2 d:\test\test.c
#define path3 d:\test\
例子1:巨集表示式的使用
注意:#include #define _sum_(a, b) (a) + (b)
#define _min_(a, b) ((a) < (b) ? (a) : (b))
#define _dim_(a) sizeof(a)/sizeof(*a)
int main()
;
int s1 = _sum_(a, b);
int s2 = _sum_(a, b) * _sum_(a, b);
int m = _min_(a++, b);
int d = _dim_(c);
printf("s1 = %d\n", s1);
printf("s2 = %d\n", s2);
printf("m = %d\n", m);
printf("d = %d\n", d);
return 0;
}
例子2:巨集的綜合應用
#include #include #define malloc(type, x) (type*)malloc(sizeof(type)*x)
#define free(p) (free(p), p=null)
#define log(s) printf("[%s] %s \n", __date__, __file__, __line__, s)
#define foreach(i, m) for(i=0; i#define begin
int main()
巨集定義與使用分析
巨集定義常量 define巨集定義常量可以出現在 的任何地方 define從本行開始,之後的 都可以使用這個巨集常量 以上巨集定義都正確 最後乙個巨集定義採用了接續符 等同於 define path 3 d delphi ctopic3.ppt 巨集定義表示式 define表示式有函式呼叫的假象,卻...
巨集 macro 定義與使用
巨集的定義 巨集的替換與 展開 巨集的替換產生的問題 獲取巨集引數名稱 巨集引數的結合 巨集的取消 巨集定義的換行連線 標準預處理巨集 巨集 macro 是基於 define所實現的另一種預處理功能。與基本的 define定義的是常量相比,巨集 macro 允許多個引數化替換,引數中可以是固定的字串...
巨集定義與巨集替換
一.c c 語言中使用巨集的主要目的主要有 3 個 1.提高 的可讀性 把用到的常量定義成有意義的名字 2.無需函式呼叫,執行效率高 對於一些簡單的操作,無需呼叫函式,雖然程式設計是強調模組化,但是函式呼叫時,需要保護現場和恢復現場。這些都需要耗時。對於複雜的操作來講,這些耗時可以不計,但是對於簡單...