В следующем фрагменте неправильное использование спецификаторов формата внутри вызова MyFormat () должно выдавать предупреждение в соответствии со спецификациями SAL, и если я раскомментирую идентичный вызов printf (), я действительно получу все эти предупреждения, номой код скомпилирован тихо даже с / W4.Что я делаю неправильно?Я использую MSVC 2017 15.9.7 Community Edition.
#include <stdio.h>
#include <stdarg.h>
void MyFormat(_Printf_format_string_ const char *fmt, ...)
{
va_list va;
va_start(va, fmt);
vprintf(fmt, va);
va_end(va);
}
int main()
{
MyFormat("blabla %s\n", L"qq");
// printf("blabla %s\n", L"qq");
return 0;
}