程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 具有可變數目的參數的宏-參數列的宏定義方法。

具有可變數目的參數的宏-參數列的宏定義方法。

編輯:C++入門知識

C++ 編譯器接受以下形式的 #define 預處理程序指令。


#define identifier (...) replacement_list
#define identifier (identifier_list, ...) replacement_list

如果列出的宏參數以省略號結尾,那麼該宏的調用允許使用除了宏參數以外的其他更多參數。其他參數(包括逗號)收集到一個字符串中,宏替換列表中的名稱 __VA_ARGS__ 可以引用該字符串。以下示例說明了如何使用可變參數列表的宏。


#define debug(...) fprintf(stderr, __VA_ARGS__)
#define showlist(...) puts(#__VA_ARGS__)
#define report(test, ...) ((test)?puts(#test):\
                        printf(__VA_ARGS__))
debug(“Flag”);
debug(“X = %d\n”,x);
showlist(The first, second, and third items.);
report(x>y, “x is %d but y is %d”, x, y);

其結果如下:


fprintf(stderr, “Flag”);
fprintf(stderr, “X = %d\n”, x);
puts(“The first, second, and third items.”);
((x>y)?puts(“x>y”):printf(“x is %d but y is %d”, x, y));
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved