Почему / разрешил 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;
}

Ответы на вопрос(5)

Ваш ответ на вопрос