Исходные файлы и исходные программы

Исходная программа может быть разделена на один или несколько исходных файлов или единиц перевода. Входные данные компилятора называются единицей перевода.

Синтаксис

translation-unit:
external-declaration
translation-unit external-declaration

external-declaration:
function-definition
declaration

Общие сведения о объявлениях дают синтаксис для declaration нетерминального, а справочник по препроцессору объясняет, как обрабатывается единица перевода .

Замечание

Общие сведения о синтаксисе языка C см. в описании соглашений о синтаксисе ANSI.

Компоненты единицы перевода — это внешние объявления, включающие определения функций и объявления идентификаторов. Эти объявления и определения могут находиться в исходных файлах, файлах заголовков, библиотеках и других файлах, необходимых программе. Необходимо скомпилировать каждую единицу перевода и связать полученные файлы объектов, чтобы сделать программу.

Исходная программа C — это коллекция директив, прагм, объявлений, определений, блоков инструкций и функций. Чтобы быть допустимыми компонентами программы Microsoft C, каждый из них должен иметь синтаксис, описанный в этой книге, хотя они могут отображаться в любом порядке в программе (в соответствии с правилами, описанными в этой книге). Однако расположение этих компонентов в программе влияет на то, как переменные и функции могут использоваться в программе. Дополнительные сведения см. в разделе "Время существования", "Область", "Видимость" и "Компоновка".

Исходные файлы не должны содержать исполняемые инструкции. Например, можно найти полезно разместить определения переменных в одном исходном файле, а затем объявить ссылки на эти переменные в других исходных файлах, которые используют их. Этот метод упрощает поиск и обновление определений при необходимости. По той же причине константы и макросы часто упорядочены в отдельные файлы с именем "include files" или "header files", которые можно ссылаться в исходных файлах по мере необходимости. Дополнительные сведения о макросах и файлах см. в справочнике по препроцессору.

См. также

Структура программы