在线文档教程
C++
应用 | Utilities

Fixed width integer types

固定宽度整数类型%28自C++11%29

类型

在标头中定义<cstdint>

*。

INT 8[医]Tint 16[医]Tint 32[医]Tint 64[医]t%28可选%29有符号整数类型,宽度分别为8、16、32和64位,没有填充位,只有在实现直接支持类型%29%28的情况下才提供负值%28的2%27 s补码。

INT[医]快8[医]淡色[医]扣件16[医]淡色[医]扣件32[医]淡色[医]快64[医]宽度至少为8、16、32和64位的最快有符号整数类型,分别为%28

INT[医]最少8[医]淡色[医]至少16[医]淡色[医]至少32[医]淡色[医]至少64[医]最小有符号整数类型,宽度分别为8、16、32和64位,分别为28位、28位和29位。

最大[医]T最大宽度整数类型%28-胡枝子f%29

intptr[医]T%28可选%29整数类型能够保持指针%28

温特8[医]tuint 16[医]tuint 32[医]tuint 64[医]t%28可选的%29无符号整数类型,宽度分别为8、16、32和64位,只有在实现直接支持类型%29%28

温特[医]快8[医]图林[医]扣件16[医]图林[医]扣件32[医]图林[医]快64[医]宽度至少为8、16、32和64位的最快无符号整数类型

温特[医]最少8[医]图林[医]至少16[医]图林[医]至少32[医]图林[医]至少64[医]最小无符号整数类型,宽度分别为8、16、32和64位,分别为28位、28位和29位。

温特马克斯[医]T最大宽度无符号整数类型%28

尤因普特[医]t%28可选%29无符号整数类型,能够保存指针%28

宏常数

在标头中定义<cstdint>

*。

有符号整数:最小值

INT 8[医]MININT 16[医]MININT 32[医]MININT 64[医]int 8类型对象的最小最小值[医]T,int 16[医]T,int 32[医]t,int 64[医]t%28宏常数%29

INT[医]FAST 8[医]MININT[医]FAST 16[医]MININT[医]FAST 32[医]MININT[医]FAST 64[医]int类型对象的最小最小值[医]快8[医]t,int[医]扣件16[医]t,int[医]扣件32[医]t,int[医]快64[医]t%28宏常数%29

INT[医]LEAST 8[医]MININT[医]LEAST 16[医]MININT[医]LEAST 32[医]MININT[医]LEAST 64[医]int类型对象的最小最小值[医]最少8[医]t,int[医]至少16[医]t,int[医]至少32[医]t,int[医]至少64[医]t%28宏常数%29

INTPTR[医]intptr类型对象的最小最小值[医]t%28宏常数%29

INTMAX[医]intmax类型对象的最小最小值[医]t%28宏常数%29

有符号整数:最大值

INT 8[医]MAXINT 16[医]MAXINT 32[医]MAXINT 64[医]int 8类型对象的最大值[医]T,int 16[医]T,int 32[医]t,int 64[医]t%28宏常数%29

INT[医]FAST 8[医]马辛特[医]FAST 16[医]马辛特[医]FAST 32[医]马辛特[医]FAST 64[医]int类型对象的最大值[医]快8[医]t,int[医]扣件16[医]t,int[医]扣件32[医]t,int[医]快64[医]t%28宏常数%29

INT[医]LEAST 8[医]马辛特[医]LEAST 16[医]马辛特[医]LEAST 32[医]马辛特[医]LEAST 64[医]int类型对象的最大值[医]最少8[医]t,int[医]至少16[医]t,int[医]至少32[医]t,int[医]至少64[医]t%28宏常数%29

INTPTR[医]intptr类型对象的最大值[医]t%28宏常数%29

INTMAX[医]intmax类型对象的最大值[医]t%28宏常数%29

无符号整数:最大值

UINT 8[医]MAXUINT 16[医]MAXUINT 32[医]MAXUINT 64[医]uint类型对象的最大值8[医]T,uint 16[医]T,uint 32[医]T,Uint 64[医]t%28宏常数%29

UINT[医]FAST 8[医]马克斯[医]FAST 16[医]马克斯[医]FAST 32[医]马克斯[医]FAST 64[医]uint类型对象的最大值[医]快8[医]T,Uint[医]扣件16[医]T,Uint[医]扣件32[医]T,Uint[医]快64[医]t%28宏常数%29

UINT[医]LEAST 8[医]马克斯[医]LEAST 16[医]马克斯[医]LEAST 32[医]马克斯[医]LEAST 64[医]uint类型对象的最大值[医]最少8[医]T,Uint[医]至少16[医]T,Uint[医]至少32[医]T,Uint[医]至少64[医]t%28宏常数%29

UINTPTR[医]uintptr类型对象的最大值[医]t%28宏常数%29

UINTMAX[医]uintmax类型对象的最大值[医]t%28宏常数%29

函数宏,用于最小宽度整数常量。

INT8_CINT16_CINT32_CINT64_Cexpands to an integer constant expression having the value specified by its argument and the type int_least8_t, int_least16_t, int_least32_t, int_least64_t respectively (function macro)
INTMAX_Cexpands to an integer constant expression having the value specified by its argument and the type intmax_t (function macro)
UINT8_CUINT16_CUINT32_CUINT64_Cexpands to an integer constant expression having the value specified by its argument and the type uint_least8_t, uint_least16_t, uint_least32_t, uint_least64_t respectively (function macro)
UINTMAX_Cexpands to an integer constant expression having the value specified by its argument and the type uintmax_t (function macro)

二次

#include <cstdint> UINT64_C(0x123) // expands to a literal of type uint64_t and value 0x123

二次

格式宏常量

在标头中定义<cinttypes>

*。

属性的格式常量。std::fprintf函数族

Equivalentfor int orunsigned intDescriptionMacros for data types
std::intx_tstd::int_leastx_tstd::int_fastx_t

x=8、16、32或64

d输出有符号十进制整数值PRIdx PRIdLEASTx PRIdFASTx PRIdMAX PRIdPTR

I PRIix PRLiLEASTx PRIFFASTx PRIFIMAX PRIIPTR

U输出无符号十进制整数值PRIux PRIuLEASTx PRIuFASTx PRIuMAX PRIuPTR

无符号八进制整数值PRIox PRIOLEASTx PRIOFASTx PRIOMAX PRIOPTR的输出

无符号小写十六进制整数值PRIxx PRIxLEASTx PRIxFASTx PRIxMAX PRIxPTR的X输出

无符号大写十六进制整数值PRIXx PRIXLEASTx PRIXFASTx PRIXMAX PRIXPTR的X输出

属性的格式常量。std::fscanf函数族

Equivalentfor int orunsigned intDescriptionMacros for data types
std::intx_tstd::int_leastx_tstd::int_fastx_t

x=8、16、32或64

D输入有符号十进制整数值SCNdx SCNdLEASTx SCNdFASTx SCNdMAX SCNDPTR

输入有符号整数值SCNix SCNiLEASTx SCNiFASTx SCNiMAX SCNiPTR

U输入无符号十进制整数值SCNux SCNuLEASTx SCNuFASTx SCNuMAX SCNuPTR

输入无符号八进制整数值SCNox SCNoLEASTx SCNoFASTx SCNoMAX SCNoPTR

输入无符号十六进制整数值SCNxx SCNxLEASTx SCNxFASTx SCNxMAX SCNxPTR

注记

因为C++将紧跟在字符串文本后面的字符解释为用户定义的字符串文字,c代码,如printf("%"PRId64"\n",n是无效的C++,并且需要一个空格PRId64...

C99标准建议C++实现不应定义上述限制、常量或宏格式,除非宏__STDC_LIMIT_MACROS,,,__STDC_CONSTANT_MACROS__STDC_FORMAT_MACROS%28%29是在包含相关C头之前定义的stdint.hinttypes.h29%。这一建议没有被任何C++标准采纳,而是在C11中被删除。但是,一些实现%28(如glibc 2.17%29)尝试应用此规则,并且可能需要定义__STDC宏;C++编译器可能试图通过在某些情况下自动定义宏来解决这个问题。

二次

#include <cstdio> #include <cinttypes> int main() { std::printf("%zu\n", sizeof(std::int64_t) std::printf("%s\n", PRId64 std::printf("%+" PRId64 "\n", INT64_MIN std::printf("%+" PRId64 "\n", INT64_MAX std::int64_t n = 7; std::printf("%+" PRId64 "\n", n }

二次

可能的产出:

二次

8 lld -9223372036854775808 +9223372036854775807 +7

二次

另见

  • 基本类型

固定宽度整数类型的C文档

*。

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cpPreference.com/w/cpp/type/INTEGER