查看宏展開之後的代碼

原文來自:dadaguo3000的專欄

#include <stdio.h>     
#define MIN(x, y) (x < y ? x : y)     
#define TO_STRING(x) TO_STRING1(x)     
#define TO_STRING1(x) #x     
int main() {     
    const char *str = TO_STRING(MIN(1, 2));     
    printf(str);     
    return 0;     
}

#和##. 前者用來將一個文本轉化爲語言內字符串, 後者用來連接兩個文本

 

例:
#define TO_STRING(s)   #s
#define CAT(a, b)             a#b

TO_STRING(a)                => "a"
int CAT(a, b);                 => int ab;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章