次のマクロがあります。
#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を正しく使用していない場合、誰かが知っていますか?
よろしく。