Программа на С состоит из отдельно компилируемых модулей. Модуль – это исходный файл компилятора С, содержащий набор логически связанных данных и функций. Функции не могут быть вложены одна в другую. Функции и данные могут быть глобальные, т.е. известные во всей программе, или статические – известные только в данном модуле.
Обычно процесс преобразования текста программы в исполняемый код является многоэтапным (по крайней мере – двухэтапным).
На первом этапе реализуется собственно компиляция, при которой тексты исходных модулей программы преобразуются в так называемые объектные модули, которые хотя и состоят в основном из машинных команд, но еще не могут выполняться. Процесс построения исполняемого модуля называется редактированием связей и заключается в установлении связей между отдельными объектными модулями и окончательной привязкой к памяти.
Компиляция Редактирование
связей