Вместе с компилятором для языка С идет стандартная библиотека Си, которая включает ряд функций и макросов, определенных в заголовочных файлах. По мере развития языка и принятия новых стандартов эта библиотека расширяется и пополняется новым функционалом. Вкратце рассмотрим из чего она состоит.
Заголовочные файлы, доступные во всех стандартах:
<assert.h>: содержит макросы для тестирования и проверки функционала
<ctype.h>: предоставояет функции для работы с отдельными символами
<errno.h>: макросы для работы с ошибками
<float.h>: определяет константы для операций с числами с плавающей точкой
<limits.h>: определяет размеры для встроенных типов данных
<locale.h>: содержит функционал для локализации
<math.h>: математические функции
<setjmp.h>: макросы и функции для работы с переходами
<signal.h>: функционал для обработки сигналов
<stdarg.h>: определяет макросы для работы с переменным количеством параметров в функциях
<stddef.h>: определяет макросы общего назначения, типа NULL, wchar_t, size_t и др.
<stdio.h>: функции для работы с системой ввода-вывода
<stdlib.h>: функционал для работы с памятью
<string.h>: функции для работы со строками
<time.h>: функционал для работы с датами и временем
<wchar.h>: функционал для работы с символами, которые занимают больше 1 байта
<wctype.h>: функционал для работы с символами, которые занимают больше 1 байта
<iso646.h>: определяет макросы для поразрядных операций
В стандарте C99 были добавлены
<complex.h>: для работы с комплексными числами
<fenv.h>: содержит функционал для работы с числами с плавающей точкой
<inttypes.h>: содержит макросы для форматирования чисел и функции для работы с типом intmax_t
<stdbool.h>: содержит макросы для работы с типом данных bool.
<stdint.h>: объявляет несколько целочисленных типов фиксированного размера и макросов, которые определяют размер этих типов
<tgmath.h>: включает в себя заголовки "math.h" и "complex.h" и определяет несколько обощенных макросов, которые на основе аргментов решают, какую функцию надо вызывать
В стандарте C11 были добавлены
<threads.h>: содержит макросы, типы, константы и функции для работы с потоками
<stdalign.h>: определяет ряд макросов для выравнивания данных
<stdatomic.h>: определяет атомарные типы
<stdnoreturn.h>: предоставляет макрос для невозвратных функций
<uchar.h>: предоставляет функции и типы для работы с символами Юникод
Далее рассмотрим наиболее используемый функционал, который определен в этих заголовочных файлах.