inttypes.h

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Стандартная библиотека
языка программирования С

inttypes.h является заголовочным файлом стандартной библиотеки Си и соответствующего API. Он был добавлен в версии 1999 года ISO-стандарта языка Си (известном как C99). Он включает в себя заголовочный файл stdint.h. В нём определён ряд макросов для использования с семействами функций printf и scanf и функции для работы с типом intmax_t.

Заголовочный файл объявляет макросы для спецификаторов формата для функций:[1]

fprintf для типов со знаком:

PRIdN      PRIdLEASTN      PRIdFASTN     PRIdMAXN      PRIdPTR

PRIiN       PRIiLEASTN       PRIiFASTN        PRIiMAXN        PRIiPTR

fprintf для беззнаковых типов:

PRIoN      PRIoLEASTN      PRIoFASTN     PRIoMAXN      PRIoPTR

PRIuN      PRIuLEASTN      PRIuFASTN     PRIuMAXN      PRIuPTR

PRIxN      PRIxLEASTN      PRIxFASTN     PRIxMAXN      PRIxPTR

PRIXN      PRIXLEASTN      PRIXFASTN     PRIXMAXN       PRIXPTR

и подобные для функции fscanf с префиксом SCN.

Каждый из этих макросов раскрывается в строковую константу, содержащую соответствующий спецификатор.[1]

#include <inttypes.h>
intmax_t imaxabs (intmax_t j);

Функция вычисляет абсолютное значение для целого j. Если результат не может быть вычислен, поведение функции не определено.

#include <inttypes.h>
intmax_t imaxdiv (intmax_t numer, intmax_t denom);

Функция получает результат деления и остаток от деления. Если одно из них не может быть вычислено, то поведение функции не определено.

#include <inttypes.h>
intmax_t strtoimax (const char * restrict nptr, char ** restrict endptr, int base);
uintmax_t strtoumax (const char * restrict nptr, char ** restrict endptr, int base);

Функции эквивалентны strtol, strtoll, strtoul, strtoull, за исключением того, что строка конвертируется в intmax_t и uintmax_t соответственно. Функции возвращают преобразованное значение, если его можно представить. В противном случае возвращается один из макросов INTMAX_MAX, INTMAX_MIN или UINTMAX_MAX, а в errno записывается значение ERANGE.

#include <inttypes.h>
#include <stddef.h>
intmax_t wcstoimax (const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);
uintmax_t wcstoumax (const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);

Поведение этих функций эквивалентно strtoimax() и strtoumax().[1]

Примечания

[править | править код]
  1. 1 2 3 ISO/IEC 9899:1999. Дата обращения: 30 июля 2011. Архивировано 22 августа 2011 года.

Дополнительные источники

[править | править код]