В C объявления функций могут быть объявлениями-прототипами или не-прототипами.Например, рассмотрим следующую минимальную программу:
int foo (); /* non-prototype declaration */
int bar (void); /* prototype declaration */
int main (int argc, char **argv)
{
return 0;
}
Хотя в C99 объявления, не относящиеся к прототипам, являются устаревшими, я не могу заставить GCC жаловаться на них.Например, компиляция вышеупомянутой программы с GCC и всеми включенными ошибками завершается успешно:
$ gcc -std=c99 -pedantic -Werror -Wall test.c
$
Есть ли способ убедить GCC выдавать предупреждения для объявлений функций, которые не являются прототипами?
(Вопрос вдохновлен ответом Китом Томпсоном .)