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]
См. также
[править | править код]Ссылки
[править | править код]inttypes.h
: Целочисленные типы фиксированного размера — основные определения, The Single UNIX® Specification, выпуск 7 от The Open Group (англ.)
Примечания
[править | править код]- ↑ 1 2 3 ISO/IEC 9899:1999 . Дата обращения: 30 июля 2011. Архивировано 22 августа 2011 года.
Дополнительные источники
[править | править код]- inttypes.h — заголовочный файл для Visual C++ (требует совместимый файл stdint.h).
- Определение констант и переменных явных типов