В табл. B.V.38 перечислены обобщенные функциональные макросы.
Справочные материалы 883
Таблица 6.V.38. Обобщенные математические функции
До выхода стандарта С11 для определения обобщенных макросов реализации должны были прибегать к расширениям стандарта. Но добавление выражения _Generic делает возможной прямую реализацию с использованием стандарта СИ.
ПОТОКИ: threads.h (С11)
Заголовочный файл threads.h наряду с stdatomic.h предоставляет поддержку для параллельного программирования. Эта тема выходит за рамки настоящей книги, но, выражаясь общими терминами, данный заголовочный файл поддерживает множество потоков выполнения, которые в принципе могут быть назначены разным процессорам.
Дата И время: time.h
В заголовочном файле time.h определены три макроса. Первым из них, который также определен во многих других заголовочных файлах, является NULL, представляющий нулевой указатель. Второй макрос — это CLOCKS_PER_SEC; деление на этот макрос значения, возвращенного функцией clock()', позволяет получить время в секундах. Третий макрос (С11) называется TIME_UTC и представляет собой положительную целочисленную константу, обозначающую координату времени UTC (Universal Time Coordinated — универсальное синхронизированное время), которая является потенциальным аргументом функции timespec_get().
UTC — это текущий основной стандарт мирового времени. Он применяется, например, в авиации, при составлении прогнозов погоды, для синхронизации компьютерных часов и в качестве общего стандарта в Интернете.
Определенные в этом заголовочном файле типы перечислены в табл. B.V.39.
Таблица 6.V.39. Типы, определенные в time.h
Структура timespec содержит, по меньшей мере, два члена, показанные в табл. Б.У40.
884 Приложение Б
Таблица 6.V.40. Члены структуры timespec
Компоненты календарного типа называют разделенным на составляющие временем. В табл. B.V.41 перечислены обязательные члены структуры struct tm.
Таблица 6.V.41. Члены структуры struct tm
Термин календарное время обозначает текущую дату и время; например, это может быть количество секунд, прошедших после первой секунды 1900 года. Термин локальное время — это календарное время, выраженное для локального часового пояса. Функции для работы со временем перечислены в табл. B.V.42.
Таблица 6.V.42. Функции для работы со временем
Справочные материалы 885
Окончание табл. Б. V.42
В табл. B.V.43 представлены спецификаторы формата, применяемые в функции strftime(). Многие заменяемые значения, такие как названия месяцев, зависят от текущей локальной установки.
Таблица 6.V.43. Спецификаторы формата, используемые в функции strftime()
Справочные материалы 887
Утилиты Unicode: uchar.h (C11)
Заголовочный файл wchar.h из С99 предлагает два средства поддержки крупных наборов символов. В С11 добавлена поддержка, специально ориентированная на Unicode, за счет предоставления типов, который подходят для кодировки UTF-16 и UTF-32 (табл. B.V.44).
Таблица 6.V.44. Типы, объявленные в uchar.h
Таблица 6.V.45. Функции для выполнения преобразований между широкими символами и многобайтными символами