Как получить предупреждения printf в Visual Studio 2005? - PullRequest
3 голосов
/ 12 августа 2010

При указании неверного количества аргументов для printf ():

printf("%s", "foo", "bar");

или когда, предоставляя аргументы неправильного типа:

printf("%d", "foo");

gcc может предупредить об этомошибки:

$ gcc -Wformat printf_too_many_arguments.c
printf_warnings.c: In function `main':
printf_warnings.c:5: warning: too many arguments for format
printf_warnings.c:5: warning: too many arguments for format

$ gcc -Wformat printf_argument_of_wrong_type.c
printf_warnings.c: In function `main':
printf_warnings.c:5: warning: format `%d' expects type `int', but argument 2 has type `char *'
printf_warnings.c:5: warning: format `%d' expects type `int', but argument 2 has type `char *'

Как получить такие предупреждения в Visual Studio 2005?

- Дейв

Ответы [ 3 ]

1 голос
/ 07 января 2015

Я использую cppcheck (http://cppcheck.sourceforge.net/) при работе с Visual Studio 2005, которая обнаруживает несоответствие между количеством параметров, предоставляемых для printf / wprintf, и количеством требуемых параметров.

К сожалению, это не такпроверьте соответствие типов, но это начало.

0 голосов
/ 12 августа 2010

Для этого вам понадобится дополнительное программное обеспечение.Взгляните на PC-Lint (http://www.gimpel.com/).. Он может найти ошибки такого рода (а также гораздо больше [потенциальных] ошибок).

0 голосов
/ 12 августа 2010

К сожалению, MSVC / Visual Studio не поддерживает это.

См. Также __ атрибут __ ((формат (printf, 1, 2))) для MSVC?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...