Kernighan, B. W. and Ritchie, D. M. "The 'C' Programming Language"; Chapter 22

22. Неявные описания.

Не всегда является необходимым специфицировать и класс памяти итип идентификатора в описании. Во внешних определениях и описанияхформальных параметров и членов структур класс памяти определяетсяпо контексту. Если в находящемся внутри функции описании не указантип, а только класс памяти, то предполагается, что идентификаторимеет тип int; если не указан класс памяти, а только тип, тоидентификатор предполагается описанным как auto. Исключение изпоследнего правила дается для функций, потому что спецификатор autoдля функций является бессмысленным (язык "C" не в состояниикомпилировать программу в стек); если идентификатор имеет тип"функция, возвращающая ...", то он предполагается неявно описаннымкак extern.

Входящий в выражение и неописанный ранее идентификатор, за которымследует скобка (, считается описанным по контексту как "функция,возвращающая int".