C語言開關巨集定義的學習 VA ARGS

2021-08-29 08:00:33 字數 342 閱讀 1958

最近寫c程式,學到一種開關巨集,極大提高程式的控制性:

#define __debug

#ifdef __debug

#define tnfs_print(format, ...) printf (format, ##__va_args__)

#else

#define tnfs_print(format, ...)

#endif

如果 定義了 __debug (作為開關)

則呼叫 tnfs_print()巨集  則相當於列印 printf();

相當於debug的乙個開關!!!!!

##__va_args__ 這個巨集可以參考:

c語言的巨集定義

include define square x x x define pr x printf the result is d.n x int main void 執行結果如下 the result is 16.the result is 4.the result is 14.the result i...

C語言巨集定義

c語言有很多預處理命令,如包含命令 include,巨集定義命令 define。預處理命令在程式編譯之前被編譯器處理,而巨集定義也在此時被替換。或c 語言源程式中允許用乙個識別符號來表示乙個字串,稱為 巨集 被定義為 巨集 的識別符號稱為 巨集名 在編譯預處理時,對程式中所有出現的 巨集名 都用巨集...

C語言巨集定義

乙個巨集定義的作用域是從定義處到 undef處或檔案結尾。undef num 現在此處num沒有定義。1.ifdef num 如果num有巨集定義就編譯此處。else 如果num沒有巨集定義就編譯此處 endif 不論num 有沒有巨集都編譯,即判斷體已結束。ifndef num 如果num沒有巨集...