C++官網參考連結:https://cplusplus.com/reference/cstdint/
頭檔案
<cstdint> (stdint.h)
整數類型
該頭檔案定義了一組具有特定寬度要求的整型類型别名,以及指定其限制的宏和建立這些類型值的宏函數。
類型
以下是基本整型或擴充整型的類型定義。
signed type | unsigned type | description |
---|---|---|
intmax_t | uintmax_t | Integer type with the maximum width supported. (支援最大寬度的整數類型。) |
int8_t | uint8_t | Integer type with a width of exactly 8, 16, 32, or 64 bits. For signed types, negative values are represented using 2's complement. No padding bits. Optional: These typedefs are not defined if no types with such characteristics exist.* (寬度為8、16、32或64位的整數類型。 對于有符号類型,負數用2的補碼表示。 沒有填充位。 可選的:如果不存在具有此類特征的類型,則不定義這些類型。) |
int16_t | uint16_t | |
int32_t | uint32_t | |
int64_t | uint64_t | |
int_least8_t | uint_least8_t | Integer type with a minimum of 8, 16, 32, or 64 bits. No other integer type exists with lesser size and at least the specified width. (最小值為8、16、32或64位的整數類型。 不存在比它更小且至少具有指定寬度的其他整數類型。) |
int_least16_t | uint_least16_t | |
int_least32_t | uint_least32_t | |
int_least64_t | uint_least64_t | |
int_fast8_t | uint_fast8_t | Integer type with a minimum of 8, 16, 32, or 64 bits. At least as fast as any other integer type with at least the specified width. (最小值為8、16、32或64位的整數類型。 至少與至少具有指定寬度的任何其他整數類型一樣快。) |
int_fast16_t | uint_fast16_t | |
int_fast32_t | uint_fast32_t | |
int_fast64_t | uint_fast64_t | |
intptr_t | uintptr_t | Integer type capable of holding a value converted from a pointer and then be converted back to that type with a value that compares equal to the original pointer. Optional: These typedefs may not be defined in some library implementations.* (能夠儲存從void指針轉換後的值,然後再轉換回類型與原始指針相等的值的整型。 可選的:在某些庫實作中可能沒有定義這些類型定義。*) |
其中一些類型定義可能表示相同的類型。是以,函數重載不應該依賴于它們的不同。
*注意,有些類型是可選的(是以,沒有可移植性保證)。一個特定的庫實作還可以用其系統支援的其他寬度定義附加類型。在任何情況下,如果定義了有符号版本或無符号版本,則同時定義有符号版本和無符号版本。
宏
cstdint類型的限制
Macro | description | defined as |
---|---|---|
INTMAX_MIN | Minimum value of intmax_t | -(2^63-1), or lower |
INTMAX_MAX | Maximum value of intmax_t | 2^63-1, or higher |
UINTMAX_MAX | Maximum value of uintmax_t | 2^64-1, or higher |
INTN_MIN | Minimum value of exact-width signed type | Exactly -2^(N-1) |
INTN_MAX | Maximum value of exact-width signed type | Exactly 2^(N-1)-1 |
UINTN_MAX | Maximum value of exact-width unsigned type | Exactly 2^N-1 |
INT_LEASTN_MIN | Minimum value of minimum-width signed type | -(2^(N-1)-1), or lower |
INT_LEASTN_MAX | Maximum value of minimum-width signed type | 2^(N-1)-1, or higher |
UINT_LEASTN_MAX | Maximum value of minimum-width unsigned type | 2^N-1, or higher |
INT_FASTN_MIN | Minimum value of fastest minimum-width signed type | -(2^(N-1)-1), or lower |
INT_FASTN_MAX | Maximum value of fastest minimum-width signed type | 2^(N-1)-1, or higher |
UINT_FASTN_MAX | Maximum value of fastest minimum-width unsigned type | 2^N-1, or higher |
INTPTR_MIN | Minimum value of intptr_t | -(2^15-1), or lower |
INTPTR_MAX | Maximum value of intptr_t | 2^15-1, or higher |
UINTPTR_MAX | Maximum value of uintptr_t | 2^16-1, or higher |
其中N是8、16、32、64或庫支援的任何其他類型寬度。
隻定義與庫支援的類型對應的宏。
其他類型的限制
标準整數類型的限制
Macro | description | defined as |
---|---|---|
SIZE_MAX | Maximum value of size_t | 2^64-1, or higher |
PTRDIFF_MIN | Minimum value of ptrdiff_t | -(2^16-1), or lower |
PTRDIFF_MAX | Maximum value of ptrdiff_t | 2^16-1, or higher |
SIG_ATOMIC_MIN | Minimum value of sig_atomic_t | if sig_atomic_t is signed: -127, or lower if sig_atomic_t is unsigned: 0 |
SIG_ATOMIC_MAX | Maximum value of sig_atomic_t | if sig_atomic_t is signed: 127, or higher if sig_atomic_t is unsigned: 255, or higher |
WCHAR_MIN | Minimum value of | if is signed: -127, or lower if is unsigned: 0 |
WCHAR_MAX | Maximum value of | if is signed: 127, or higher if is unsigned: 255, or higher |
WINT_MIN | Minimum value of wint_t | if wint_t is signed: -32767, or lower if wint_t is unsigned: 0 |
WINT_MAX | Maximum value of wint_t | if wint_t is signed: 32767, or higher if wint_t is unsigned: 65535, or higher |
類函數宏
這些類函數宏展開為适合初始化上述類型對象的整數常量:
Macro | description |
---|---|
INTMAX_C | expands to a value of type intmax_t |
UINTMAX_C | expands to a value of type uintmax_t |
INTN_C | expands to a value of type int_leastN_t |
UINTN_C | expands to a value of type uint_leastN_t |
例如:
INTMAX_C(2012) // expands to 2012LL or similar