Почему / разрешил C неявные объявления функций и переменных без типов?
Почему для языка имеет смысл разрешать неявные объявления функций и переменных без типов? Я получаю, что C старый, но позволяет пропустить объявления и по умолчаниюint()
(или жеint
в случае переменных) мне не кажется таким вменяемым даже тогда.
Итак, почему это было первоначально введено? Было ли это действительно полезным? Это на самом деле (все еще) используется?
Note: I realise that modern compilers give you warnings (depending on which flags you pass them), and you can suppress this feature. That's not the question!
Пример:
int main() {
static bar = 7; // defaults to "int bar"
return foo(bar); // defaults to a "int foo()"
}
int foo(int i) {
return i;
}