C 您所在的位置:网站首页 int和int8_t C

C

2024-07-12 08:34| 来源: 网络整理| 查看: 265

固定宽度整数类型(C99 起) Types 在标头 中定义 int8_tint16_tint32_tint64_t 有符号整数类型,宽度为分别正好是 8、16、32 和 64 位没有填充位并使用 2 的补码表示负值(仅当实现直接支持该类型时提供) int_fast8_tint_fast16_tint_fast32_tint_fast64_t 最快的有符号整数类型,宽度为分别至少 8、16、32 和 64 位 int_least8_tint_least16_tint_least32_tint_least64_t 最小有符号整数类型,宽度为分别至少 8、16、32 和 64 位 intmax_t 最大宽度整数类型 intptr_t 能够保存指针的整数类型 uint8_tuint16_tuint32_tuint64_t 无符号整数类型,宽度为分别正好是 8、16、32 和 64 位(仅当实现直接支持该类型时提供) uint_fast8_tuint_fast16_tuint_fast32_tuint_fast64_t 最快的无符号整数类型,宽度为分别至少 8、16、32 和 64 位 uint_least8_tuint_least16_tuint_least32_tuint_least64_t 最小的无符号整数类型,宽度为分别至少 8、16、32 和 64 位 uintmax_t 最大宽度无符号整数类型 uintptr_t 能够保存指针的无符号整数类型

当以下情况时,实现可以定义 typedef 名称 intN_t 、 int_fastN_t 、 int_leastN_t 、 uintN_t 、 uint_fastN_t 和 uint_leastN_tN不是 8、16、32 或 64。仅当实现支持该宽度且无填充的整数类型时,才可以定义 intN_t 形式的 Typedef 名称。因此,uint24_t 表示宽度恰好为 24 位的无符号整数类型。

当且仅当实现定义了相应的 typedef 名称时,才定义下面列出的每个宏。宏 INTN_C 和 UINTN_C 分别对应于 typedef 名称 int_leastN_t 和 uint_leastN_t 。

Macro constants 在标头 中定义 有符号整数:宽度 INT8_WIDTHINT16_WIDTHINT32_WIDTHINT64_WIDTH (C23)(optional) int8_t、int16_t、int32_t、int64_t 类型的对象的位宽度(正好是 8、16、32、64) (macro constant) INT_FAST8_WIDTHINT_FAST16_WIDTHINT_FAST32_WIDTHINT_FAST64_WIDTH (C23) int_fast8_t、int_fast16_t、int_fast32_t、int_fast64_t 类型的对象的位宽度 (macro constant) INT_LEAST8_WIDTHINT_LEAST16_WIDTHINT_LEAST32_WIDTHINT_LEAST64_WIDTH (C23) int_least8_t、int_least16_t、int_least32_t、int_least64_t 类型的对象的位宽度 (macro constant) INTPTR_WIDTH (C23)(optional) intptr_t 类型对象的位宽 (macro constant) INTMAX_WIDTH (C23) intmax_t 类型对象的位宽 (macro constant) 有符号整数:最小值 INT8_MININT16_MININT32_MININT64_MIN int8_t、int16_t、int32_t、int64_t 类型的对象的最小值 (macro constant) INT_FAST8_MININT_FAST16_MININT_FAST32_MININT_FAST64_MIN int_fast8_t、int_fast16_t、int_fast32_t、int_fast64_t 类型的对象的最小值 (macro constant) INT_LEAST8_MININT_LEAST16_MININT_LEAST32_MININT_LEAST64_MIN int_least8_t、int_least16_t、int_least32_t、int_least64_t 类型的对象的最小值 (macro constant) INTPTR_MIN intptr_t 类型对象的最小值 (macro constant) INTMAX_MIN intmax_t 类型对象的最小值 (macro constant) 有符号整数:最大值 INT8_MAXINT16_MAXINT32_MAXINT64_MAX int8_t、int16_t、int32_t、int64_t 类型的对象的最大值 (macro constant) INT_FAST8_MAXINT_FAST16_MAXINT_FAST32_MAXINT_FAST64_MAX int_fast8_t、int_fast16_t、int_fast32_t、int_fast64_t 类型的对象的最大值 (macro constant) INT_LEAST8_MAXINT_LEAST16_MAXINT_LEAST32_MAXINT_LEAST64_MAX int_least8_t、int_least16_t、int_least32_t、int_least64_t 类型的对象的最大值 (macro constant) INTPTR_MAX intptr_t 类型对象的最大值 (macro constant) INTMAX_MAX intmax_t 类型对象的最大值 (macro constant) 无符号整数:宽度 UINT8_WIDTHUINT16_WIDTHUINT32_WIDTHUINT64_WIDTH (C23)(optional) uint8_t、uint16_t、uint32_t、uint64_t 类型的对象的位宽度(正好是 8、16、32、64) (macro constant) UINT_FAST8_WIDTHUINT_FAST16_WIDTHUINT_FAST32_WIDTHUINT_FAST64_WIDTH (C23) uint_fast8_t、uint_fast16_t、uint_fast32_t、uint_fast64_t 类型的对象的位宽度 (macro constant) UINT_LEAST8_WIDTHUINT_LEAST16_WIDTHUINT_LEAST32_WIDTHUINT_LEAST64_WIDTH (C23) uint_least8_t、uint_least16_t、uint_least32_t、uint_least64_t 类型的对象的位宽度 (macro constant) UINTPTR_WIDTH (C23)(optional) uintptr_t 类型对象的位宽 (macro constant) UINTMAX_WIDTH (C23) uintmax_t 类型对象的位宽 (macro constant) 无符号整数:最大值 UINT8_MAXUINT16_MAXUINT32_MAXUINT64_MAX uint8_t、uint16_t、uint32_t、uint64_t 类型的对象的最大值 (macro constant) UINT_FAST8_MAXUINT_FAST16_MAXUINT_FAST32_MAXUINT_FAST64_MAX uint_fast8_t、uint_fast16_t、uint_fast32_t、uint_fast64_t 类型的对象的最大值 (macro constant) UINT_LEAST8_MAXUINT_LEAST16_MAXUINT_LEAST32_MAXUINT_LEAST64_MAX uint_least8_t、uint_least16_t、uint_least32_t、uint_least64_t 类型的对象的最大值 (macro constant) UINTPTR_MAX uintptr_t 类型的对象的最大值 (macro constant) UINTMAX_MAX uintmax_t 类型对象的最大值 (macro constant) 最小宽度整数常量的函数宏 INT8_CINT16_CINT32_CINT64_C 扩展为整数常量表达式,其值分别由其参数和类型 int_least8_t、int_least16_t、int_least32_t、int_least64_t 指定 (function macro) INTMAX_C 扩展为整数常量表达式,其值由其参数指定且类型为 intmax_t (function macro) UINT8_CUINT16_CUINT32_CUINT64_C 扩展为整数常量表达式,其值分别由其参数和类型 uint_least8_t、uint_least16_t、uint_least32_t、uint_least64_t 指定 (function macro) UINTMAX_C 扩展为整数常量表达式,其值由其参数指定且类型为 uintmax_t (function macro) #include UINT64_C(0x123) // 可能扩展为 0x123ULL 或 0x123UL 格式化宏常量 在标头 中定义 fprintf 系列函数的格式常量

当且仅当实现定义了相应的 typedef 名称时,才会定义此处列出的每个 PRI 宏。

Equivalent对于 int 或 unsignedint Description 数据类型的宏

[u]intx_t

[u]int_leastx_t [u]int_fastx_t [u]intmax_t [u]intptr_t d 有符号十进制整数值的输出 PRIdx PRIdLEASTx PRIdFASTx PRIdMAX PRIdPTR i PRIix PRIiLEASTx PRIiFASTx PRIiMAX PRIiPTR u 无符号十进制整数值的输出 PRIux PRIuLEASTx PRIuFASTx PRIuMAX PRIuPTR o 无符号八进制整数值的输出 PRIox PRIoLEASTx PRIoFASTx PRIoMAX PRIoPTR x 无符号小写十六进制整数值的输出 PRIxx PRIxLEASTx PRIxFASTx PRIxMAX PRIxPTR X 无符号大写十六进制整数值的输出 PRIXx PRIXLEASTx PRIXFASTx PRIXMAX PRIXPTR fscanf 系列函数的格式常量

当且仅当实现定义了相应的 typedef 名称并且具有适合该类型的 fscanf 长度修饰符时,才会定义此处列出的每个 SCN 宏。

Equivalent对于 int 或 unsignedint Description 数据类型的宏

[u]intx_t

[u]int_leastx_t [u]int_fastx_t [u]intmax_t [u]intptr_t d 有符号十进制整数值的输入 SCNdx SCNdLEASTx SCNdFASTx SCNdMAX SCNdPTR i 有符号整数值的输入(基数由解析的第一个字符确定) SCNix SCNiLEASTx SCNiFASTx SCNiMAX SCNiPTR u 输入无符号十进制整数值 SCNux SCNuLEASTx SCNuFASTx SCNuMAX SCNuPTR o 无符号八进制整数值的输入 SCNox SCNoLEASTx SCNoFASTx SCNoMAX SCNoPTR x 无符号十六进制整数值的输入 SCNxx SCNxLEASTx SCNxFASTx SCNxMAX SCNxPTR Example

有关本示例中使用的 format macros 之前的空格,另请参见 C++ compatibility note 。

#include #include int main(void) { printf("%zu\n", sizeof(int64_t)); printf("%s\n", PRId64); printf("%+" PRId64 "\n", INT64_MIN); printf("%+" PRId64 "\n", INT64_MAX); int64_t n = 7; printf("%+" PRId64 "\n", n); }

Possible output:

8 lld -9223372036854775808 +9223372036854775807 +7 References C23 标准(ISO/IEC 9899:2023): 7.8.1 格式说明符的宏(p:待定) 7.18 整数类型 (p:待定) C17 标准(ISO/IEC 9899:2018): 7.8.1 格式说明符的宏 (p: 158-159) 7.18 整数类型 (p: 212-216) C11 标准(ISO/IEC 9899:2011): 7.8.1 格式说明符的宏 (p: 217-218) 7.18 整数类型 (p: 289-295) C99 标准(ISO/IEC 9899:1999): 7.8.1 格式说明符的宏 (p: 198-199) 7.18 整数类型 (p: 255-261) See also Arithmetic types C++ documentation 用于固定宽度整数类型 C++ documentation 用于用户定义文字 ( formatting macros note )

© cppreference.comLicensed under the Creative Commons Attribution-ShareAlike Unported License v3.0. https://en.cppreference.com/w/c/types/integer



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有