Как избежать printf предупреждений о типах - PullRequest
1 голос
/ 02 августа 2011

Мне интересно, есть ли хороший способ, чтобы gcc не кричал о типах printf: 'warning: формат "% d" ожидает аргумент типа "int", но аргумент 12 имеет тип foo "

Это довольно неприятно, когда вы знаете, что где-то написали 'typedef int foo' ...

Конечно, я не ищу исправления gcc для этого ([-Wformat]).

Я хотел бы знать, есть ли способ избежать предупреждения БЕЗ каждого произнесения разумеется!

Ответы [ 2 ]

8 голосов
/ 02 августа 2011

Если у вас есть typedef int foo, gcc не должен вас предупреждать. Если gcc предупреждает вас, есть большая вероятность, что foo действительно не является целым числом.

0 голосов
/ 02 августа 2011

Это имеет неопределенное поведение во всем. Не использовать!

char *fmt;
fmt = "%d%f%p%u\n";
printf(fmt, 1, 1, 1, 1, 1, 1, 1, 1, 1); /* fill stack with values */
...