define 巨集的用法備註

2021-08-04 02:09:30 字數 1048 閱讀 6948

c99和gcc都支援,但是細節存在區別

在__va_args__位置填入…中的內容

功能與上述一模一樣,在args中填充…的內容,可讀性更強,更簡潔

這個##操作符用於消除 … 為空時 __va_args__前面的那個逗號

- 例如:debug(「myerr」),第一種巨集替換後成為fprintf(stderr,」myerr」, ) 這裡就多出個逗號。

以下均為示範用例

將巨集函式中的instr前後加上引號,變成」instr」後替換 函式中的 #instr (#就是加引號後替換)

-例如:

#define func(var)  #var

int main()

輸出結果為 「helloworld」;

以字串形式連線x到user後面,使用示例:

#include

#define paster(n) printf("token"

#n"=%d\n",token##n)//#用法如上

int main()

注意順序,這裡會將x轉換為單引號字元 比如tochar(abc) 展開成 『abc』

一行表示不完整時,\表示連線到下一行開頭

ansi c中的幾個標準巨集定義

#ifdef __cplusplus

extern

"c"

#endif

define巨集的用法

再舉乙個使用無引數巨集替代字串的例子 define m y y 3 y include int main define m y y 3 y 定義m表示式 y y 3 y 在編寫源程式時,所有的 y y 3 y 都可由m代替,而對源程式作編譯時,將先由預處理程式進行巨集代換,即用 y y 3 y 表示...

define巨集的高階用法

參考 普通巨集定義 define pi 3.14 編譯階段替換掉巨集 define t1 3 4 容易產生歧義 define t2 3 4 新增括號後,語義清楚 float r 1.0 float area pi r r int a 2 t1 巨集替換後變成 int a 2 3 4 不符合本意 in...

c 巨集定義用法 define

巨集定義語法 define name stuff define pi 3.14 定義乙個m,值為3.14 define do forever for 定義乙個死迴圈 define reg register 定義reg來作為register的別名 define case break case 在swi...