У меня проблема с методами va_
, и я не смог найти пример (или не понял, что такое ключевые слова). Проблема заключается в том, что нужно использовать одни и те же аргументы для разных форматов, но компилятор дает мне:c переменные функции, те же аргументы, разные форматы
неправильное использование va_start
ошибки. Код, который я пытаюсь, выглядит примерно так:
void vSaveNecessaryFields(EnumA eFormat, ...)
{
va_list xArgs, xArgs2;
const char *fmt1 = NULL, *fmt2 = NULL;
char caString[100] = {0};
fmt1 = cpGetDbFormat(eFormat);
fmt2 = cpGetPrinterFormat(eFormat);
va_start(xArgs1, fmt1);
va_copy(xArgs2, xArgs1);
vsnprintf(caString, sizeof(caString), fmt1, xArgs1);
vSaveToDb(caString);
va_start(xArgs2, fmt2);
vsnprintf(caString, sizeof(caString), fmt2, xArgs2);
vPrintFormatted(caString);
va_end(xArgs2);
va_end(xArgs1);
}
Как я могу решить эту проблему?
'va_start (xArgs1, fmt1)' -> 'va_start (xArgs1, eFormat)' – LPs
пытается сейчас. кто проигнорировал это и почему? –
это сработало. напишите это как ответ, и я приму это. –