我有以下宏:
#define TRACE__LOW(str, col, ...)\
TR_Trace("\r\e[" COLOR(col) "%s :: %s():%d; LOW - " str "\e[0m\r\n",\
##__VA_ARGS__);
函数TR_Trace如下所示:
void TR_Trace(const char *const string, ...)
{
va_list aptr;
size_t stringSize = 0;
char tempString[250];
va_start(aptr, string);
vsprintf(tempString, string, aptr);
va_end(aptr);
}
我正在像这样使用它:
TRACE__LOW("Led[%d] toggled every %d milliseconds (%5d)", GREEN
init_parameters.led, delay_time, counter++);
这里的问题是,一旦执行到vsprintf(tempString, string, aptr); 它卡在那里。
有人知道发生了什么,或者我没有正确使用VA_ARGS吗?
问候。