首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么使用宏定义替代一个不定函数

2013-11-15 
如何使用宏定义替代一个不定函数?原始函数void RecordLog(const char *func,const char *fmt, ...){char b

如何使用宏定义替代一个不定函数?
原始函数
void RecordLog(const char *func,const char *fmt, ...)
{
char buff[1024];
sprintf(buff,"func(%s) ",func);

va_list ap;
va_start ( ap, fmt);
vsnprintf(buff+strlen(buff),sizeof(buff),fmt,ap);
va_end(ap);
strcat(buff,"\n");
printf("%s",buff);
}
要如何写DEBUG这个宏,实现以下效果?
DEBUG("%s","test");
相当于
RecordLog(__FUNCTION__,"%s","test");         //__FUNCTION__表示当前语句所处函数
[解决办法]
GCC:

#define DEBUG(fmt, ...) RecordLog(__FUNCTION__, fmt, __VAR_ARGS__)

[解决办法]
__VAR_ARGS__是预编译处理的东西,没有头文件声明。

热点排行