Есть ли тип по умолчанию для параметров main в ANSI C или gcc просто щедрый? - PullRequest
2 голосов
/ 31 октября 2011

Я скопировал пример, начинающийся с

основной (т) {

Итак, при компиляции с помощью gcc -pedantic я ожидал как минимум компиляции около
- отсутствует возвращаемый тип основного (тот, который пришел)
- отсутствует тип для 't' - ничего, ни с -Wall, ни -pedantic.

Это просто немного щедро gcc или в стандарте есть тип по умолчанию? Пока ничего не смог найти.

Спасибо!

1 Ответ

6 голосов
/ 31 октября 2011

Стандарт не предусматривает функцию main с 1 параметром - для него требуются две формы, одна с 0 и одна с 2. Реализациям разрешено разрешать другие.

Итак, GCC делает что-то зависящее от реализации, чтобы разрешить это, даже если вы указали тип.

C89 допускает параметры без объявленного типа, по умолчанию int. То же самое относится к переменным и к функциям без объявленного типа возвращаемого значения (они возвращают int). C99 не допускает никаких типов по умолчанию int (и GCC диагностирует его с помощью -pedantic -std=c99).

...