巨集定義與使用

2022-07-23 05:24:10 字數 1080 閱讀 3551

下面這些巨集常量定義正確嗎?

#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.無需函式呼叫,執行效率高 對於一些簡單的操作,無需呼叫函式,雖然程式設計是強調模組化,但是函式呼叫時,需要保護現場和恢復現場。這些都需要耗時。對於複雜的操作來講,這些耗時可以不計,但是對於簡單...