#defineで可変パラメータを使う
C言語では、印刷レベル情報を追加するなど、独自の印刷関数をカプセル化する際に、#defineで可変パラメータを使用する必要がある場合があります.簡単な例は以下の通りです.
呼び出し#defineをネストし、可変パラメータを渡す必要がある場合は、簡単な例を次に示します.
#include
#define DEBUG0(fmt, args...) printf(fmt, ## args)
int main() {
char *szMsg = "My Test : ";
int count = 1;
DEBUG0("%s %d
", szMsg, count);
return 0;
}
##### #####
My Test : 1
呼び出し#defineをネストし、可変パラメータを渡す必要がある場合は、簡単な例を次に示します.
#include
#define DEBUG0(fmt, args...) printf(fmt, ## args)
#define MODULE_PRINT(fmt, args...) DEBUG0(fmt, ##args)
int main() {
char *szMsg = "My Test : ";
int count = 1;
DEBUG0("%s %d
", szMsg, count);
count = 2;
MODULE_PRINT("%s %d
", szMsg, count);
return 0;
}
####### #######
My Test : 1
My Test : 2