Dlaczego C zezwolił na funkcje ukryte i deklaracje zmiennych bez typów?
Dlaczego rozsądne jest, aby język zezwalał na niejawne deklaracje funkcji i zmiennych bez typów? Rozumiem, że C jest stary, ale pozwala pominąć deklaracje i domyślnieint()
(lubint
w przypadku zmiennych) nie wydaje mi się tak rozsądny, nawet wtedy.
Dlaczego więc został pierwotnie wprowadzony? Czy to było naprawdę przydatne? Czy rzeczywiście jest (nadal) używany?
Uwaga: zdaję sobie sprawę, że nowoczesne kompilatory dają ostrzeżenia (w zależności od tego, które flagi im przekazujesz) i możesz wyłączyć tę funkcję. To nie jest pytanie!
Przykład:
int main() {
static bar = 7; // defaults to "int bar"
return foo(bar); // defaults to a "int foo()"
}
int foo(int i) {
return i;
}