C語言中##稱為連接符,其功能是在帶參數的宏定義中將兩個子串(token)聯接起來,從而形成一個新的子串。 要注意下面的用法: 1、 [cpp] #include <stdio.h> #define debug(format, args...) fprintf(stderr, format, args) void main(void){ debug("Test \n"); return; } 有的說這種情況下字符串後面會多一個逗號,但是我用gcc編譯不通過; 2、 [cpp] #include <stdio.h> #define debug(format, args...) fprintf(stderr, format, ##args) //#define debug(format, args...) fprintf(stderr, format, args) void main(void){ debug("Test \n"); return; } 這樣可以編譯通過,執行正確; 3、 [cpp] #include <stdio.h> //#define debug(format, args...) fprintf(stderr, format, ##args) #define debug(format, args...) fprintf(stderr, format, args) void main(void){ debug("Test%d \n",1); return; } 這樣也正確;