Предупреждение C6306
Неправильный вызов функции: рассмотрите возможность использования функции, которая принимает va_list в качестве аргумента
Замечания
Это предупреждение указывает на неправильный вызов функции. Семейство printf
включает несколько функций, которые принимают переменный список аргументов, однако эти функции нельзя вызывать с аргументом va_list
. Существует соответствующая vprintf
семья функций, которые можно использовать для таких вызовов. Вызов неправильной функции печати приведет к неправильному выводу.
Имя анализа кода: INCORRECT_VARARG_FUNCTIONCALL
Пример
Следующий код создает это предупреждение:
#include <stdio.h>
#include <stdarg.h>
void f(int i, ...)
{
va_list v;
va_start(v, i);
//code...
printf("%s", v); // warning C6306
va_end(v);
}
Чтобы исправить это предупреждение, используйте следующий код:
#include <stdio.h>
#include <stdarg.h>
void f(int i, ...)
{
va_list v;
va_start(v, i);
//code...
vprintf_s("%d",v);
va_end(v);
}
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по