При создании компилятора Си решались 2 задачи:
1. разрабатывался сам компилятор
2. создавалась библиотека функции.
Библиотека представляет собой собрание функций. В отличие от объектных файлов в библиотечном файле хранится название каждой функции, объектный код функции и информация, касающаяся перемещаемости файла, необходимая для редактирования файла.
Когда программа делает ссылку на функцию, содержащуюся в библиотеке, компоновщик отыскивает эту функцию и добавляет её код к программе. Таким образом, в программе добавляются только те функции, которые будут в ней использоваться. В стандарте ANSI определены как содержание, так и форма стандартной библиотеки. Borland C++ удовлетворяет этому стандарту, поскольку предоставляет все функции, определённые стандартом ANSI.
Многие библиотечные функции работают со своими особыми типами данных и со структурами, к которым программа должна иметь доступ. Эти структуры и типы определяются в заголовочных файлах, поставляемых с компилятором и эти заголовочные файлы должны включаться с помощью #include.
В каждый файл, использующий функции, на которые они ссылаются. Кроме того, у всех библиотечных функций имеются прототипы, определённые в заголовочном файле. Многие библиотечные функции в действительности являются не функциями, а макроопределениями, содержащимися в заголовочном файле. Если по каким-либо причинам необходимо избежать использования стандартного макроса можно отменить его определение, используя препроцессорную директиву #undef.