Работа по написанию компилятора языка С фактически состоит из двух частей. Первая часть — это написание самого компилятора, который преобразует исходный файл в объектный файл. Вторая часть — разработка стандартной библиотеки. Как ни удивительно, но создать компилятор сравнительно просто. Чаще всего большую часть времени и усилий забирает именно работа над библиотечными функциями. Одна из причин этого заключается в том, что многие функции (такие как функции ввода/вывода) должны взаимодействовать с той операционной системой, для которой написан компилятор. Кроме того, стандартная библиотека С содержит большое количество самых разнообразных функций. Действительно, язык С выделяется среди других именно благодаря богатству и гибкости своих возможностей, заложенных в стандартной библиотеке.
В последующих главах будут описаны библиотечные функции С, а в этой главе речь пойдет о фундаментальных концепциях их использования; мы обсудим процесс редактирования связей[1], библиотеки и заголовки.
[1]Называется также компоновщиком.