В C * int f()
- объявление старого стиля. Он говорит, что f
ожидает фиксированное, но неуказанное число и тип (ы) аргументов. Например, учитывая int f() { return 0; }
, компилятор не будет жаловаться на f(42)
или f("hello, world")
(хотя поведение такого вызова не определено).
int f(void)
прямо говорит, что f
не принимает аргументов.
(C ++ имеет другие правила; Страуструп не заботился о обратной совместимости со старым кодом C).