В версии С99 добавлен ряд специализированных функций для преобразования формата целочисленных значений, которые позволяют преобразовывать целые значения в так называемые значения максимальной разрядности и наоборот — уменьшать разрядность при необходимости. Эти функции описаны в заголовке <inttypes.h>, который включает также заголовок <stdint.h>. Заголовок <inttypes.h> определяет один тип: структуру imaxdiv_t, в которой хранится значение, возвращаемое функцией imaxdiv(). Функции для преобразования формата целочисленных значений перечислены в табл. 20.3.
В заголовке <inttypes.h> также определено множество макросов, которые можно использовать в вызовах функций семейств printf() и scanf() для задания различных преобразований целых чисел. Макросы для функции printf() начинаются с префикса PRI, а макросы для функции scanf() — с префикса SCN. За этими префиксами стоит спецификатор преобразования, например d или u, затем следует имя типа (например, N, MAX, PTR, FASTN или LEASTN, где N задает разрядность). Точный список поддерживаемых макросов для задания различных преобразований целых чисел должен быть описан в документации к компилятору.
Функция | Описание | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
intmax_t imaxabs( intmax_t arg); |