各位大侠好!
最近在使用cxstm8编译下面代码宏定义的代码时出现bad marco argument错误,编译命令:cxstm8 debug.c。 但是我使用gcc去编译又能编译通过,编译命令:gcc debug.c。望各位帮忙分析分析,谢谢!
//debug.c
#include <stdio.h>
#inlude <stdarg.h>
#include <string.h>
#define TZH_DEBUG(msg,...) TZH_log("[%s LINE:%d] "msg"\r\n", __FILE__, __LINE__, ##__VA_ARGS__)
void TZH_log(const char *msg, ...){
char p_msg[512] ;
va_list trace_p;
memset( p_msg, 0, 512);
va_start(trace_p, msg);
_vsnprintf( p_msg,512 ,msg ,trace_p);
va_end(trace_p);
printf( (char *)p_msg );
}
int main(void){
TZH_DEBUG("abcdefg");
return 0;
} |