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

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

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

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

a