#defineで可変パラメータを使う

811 ワード

C言語では、印刷レベル情報を追加するなど、独自の印刷関数をカプセル化する際に、#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