Содержимое и форма стандартной библиотеки С задается Стандартом ANSI/ISO. Т.е. Стандарт С определяет тот набор функций, который должен поддерживать любой стандартный компилятор. Однако при этом большинство компиляторов предоставляют дополнительные функции, которые не специфицированы в Стандарте. Например, многие компиляторы имеют функции работы с графикой, подпрограммы, управляемые с помощью мышки, и другие им подобные, которых нет в Стандарте С. Пока программа не переносится в другую вычислительную среду, эти нестандартные функции можно использовать без каких-либо негативных последствий. Но если программа доллжна быть переносимой, применение таких программ нужно ограничить. На самом деле практически все нетривиальные программы С используют нестандартные функции, так что не нужно пугаться и избегать их только из-за того, что они не входят в стандартную библиотеку функций.
Хотя библиотеки похожи на объектные файлы, между библиотеками и объектными файлами есть одно важное различие. При компоновке объектных файлов все содержимое каждого объектного файла становится частью конечной исполняемой программы. При этом не важно, используется на самом деле этот код или нет. В случае с файлами библиотек ситуация иная.
Библиотека представляет собой набор функций. В отличие от объектных файлов, в библиотеке каждая функция хранится отдельно. Когда программа использует библиотечную функцию, редактор связей находит эту функцию и добавляет ее код в программу. Таким образом, исполняемый файл содержит только те функции, которые используются программой, а не все библиотечные функции. Поэтому лучше хранить стандартные функции С не в объектных файлах, а в библиотеках, из которых они добавляются в программу избирательно.