如何定义不定参数的宏

如何定义不定参数的宏(2008-01-19 11:33)
分类: C/C++

大家都知道printf是不定参数的函数,那是否有不定参数的宏呢?可以!在最近工作中学要把一些debug信息打印出来,想定义一个宏printf_debug来做这件事情。当时搜索的两篇文章忘了复制下来,可以去搜索一下看看原理更容易理解。

#if(PRINTF_DEBUG_MSG==NU_TRUE)
#if(C99_SUPPORT==NU_TRUE)
#defineprintf_debug(...)printf_uart(__VA_ARGS__)
/* usage : printf_debug("%s.%d", "debug", 1); */
#else
#defineprintf_debug(args)(printf_uart args)
/* usage : printf_debug(("%s.%d", "debug", 1)); (Note : Double parentheses)*/
#endif
#else
#defineprintf_debug(...)
#endif

函数为:

voidprintf_uart(constchar*format,...)
{
va_listarg;
chartmp[255];
va_start(arg,format);
vsprintf(tmp,format,arg);
va_end(arg);
uart_write(DATA_PORT,tmp,strlen(tmp));
}



文章转自:http://blog.chinaunix.net/space.php?uid=632207&do=blog&id=2083335

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值