ВНЕШНИЕ ОПРЕДЕЛЕНИЯ
C-программа состоит из последовательности внешних определений. Внешнее определение задает идентификатор, принадлежащий классу памяти extern (по умолчанию) либо static, и имеющий специфицированный тип. Спецификатор типа (см. пункт Спецификаторы типа в разделе ОПИСАНИЯ) может быть пустым, в таком случае тип считается равным int. Внешние определения имеют тот же синтаксис, что и все описания; единственное исключение - только на этом уровне можно задать тело функции.
программа: внешнее_определение внешнее_определение программа
внешнее_определение: определение_функции определение_данных
определение_функции: спецификаторы описатель_функции тело_функции
описатель_функции: описатель ( список_параметров )
список_параметров: идентификатор идентификатор , список_параметров
тело_функции: список_описаний составной_оператор
определение_данных: extern описание static описание