標頭檔案

<cstdint> (stdint.h)

整數型別
此標頭檔案定義了一組具有特定寬度要求的整型類型別名,以及指定其限制的宏和建立這些型別值的宏函式。

型別

以下是基本整數型別擴充套件整數型別的 typedef。

有符號型別無符號型別描述
intmax_tuintmax_t支援的最大寬度的整數型別。
int8_tuint8_t寬度恰好為 8、16、32 或 64 位的整數型別。
對於有符號型別,負值使用 2 的補碼錶示。
無填充位。
可選:如果不存在具有此類特性的型別,則不定義這些 typedef。*
int16_tuint16_t
int32_tuint32_t
int64_tuint64_t
int_least8_tuint_least8_t寬度至少為 8、16、32 或 64 位的整數型別。
不存在其他尺寸更小且至少具有指定寬度的整數型別。
int_least16_tuint_least16_t
int_least32_tuint_least32_t
int_least64_tuint_least64_t
int_fast8_tuint_fast8_t寬度至少為 8、16、32 或 64 位的整數型別。
至少與任何其他具有至少指定寬度的整數型別一樣快。
int_fast16_tuint_fast16_t
int_fast32_tuint_fast32_t
int_fast64_tuint_fast64_t
intptr_tuintptr_t能夠儲存從 void 指標轉換而來的值,然後再轉換回該型別,其值與原始指標相等的整數型別。
可選:在某些庫實現中可能未定義這些 typedef。*

其中一些 typedef 可能表示相同的型別。因此,函式過載不應依賴於它們的差異。

* 請注意,某些型別是可選的(因此,沒有可移植性保證)。特定的庫實現也可能定義其系統支援的其他寬度的附加型別。在任何情況下,如果定義了有符號或無符號版本中的任何一個,則有符號和無符號版本都將被定義。


cstdint 型別的限制

描述定義為
INTMAX_MINintmax_t 的最小值-(263-1) 或更小
INTMAX_MAXintmax_t 的最大值263-1 或更大
UINTMAX_MAXuintmax_t 的最大值264-1 或更大
INTN_MIN固定寬度有符號型別的最小值恰好是 -2(N-1)
INTN_MAX固定寬度有符號型別的最大值恰好是 2(N-1)-1
UINTN_MAX固定寬度無符號型別的最大值恰好是 2N-1
INT_LEASTN_MIN最小寬度有符號型別的最小值-(2(N-1)-1) 或更小
INT_LEASTN_MAX最小寬度有符號型別的最大值2(N-1)-1 或更大
UINT_LEASTN_MAX最小寬度無符號型別的最大值2N-1 或更大
INT_FASTN_MIN最快最小寬度有符號型別的最小值-(2(N-1)-1) 或更小
INT_FASTN_MAX最快最小寬度有符號型別的最大值2(N-1)-1 或更大
UINT_FASTN_MAX最快最小寬度無符號型別的最大值2N-1 或更大
INTPTR_MINintptr_t 的最小值-(215-1) 或更小
INTPTR_MAXintptr_t 的最大值215-1 或更大
UINTPTR_MAXuintptr_t 的最大值216-1 或更大
其中 N 是 8、16、32、64 或庫支援的任何其他型別寬度之一。

僅定義與庫支援的型別相對應的宏。

其他型別的限制

其他標準整數型別的限制
描述定義為
SIZE_MAXsize_t 的最大值264-1 或更大
PTRDIFF_MINptrdiff_t 的最小值-(216-1) 或更小
PTRDIFF_MAXptrdiff_t 的最大值216-1 或更大
SIG_ATOMIC_MINsig_atomic_t 的最小值如果 sig_atomic_t 是有符號的:-127 或更小
如果 sig_atomic_t 是無符號的:0
SIG_ATOMIC_MAXsig_atomic_t 的最大值如果 sig_atomic_t 是有符號的:127 或更大
如果 sig_atomic_t 是無符號的:255 或更大
WCHAR_MINwchar_t 的最小值如果 wchar_t 是有符號的:-127 或更小
如果 wchar_t 是無符號的:0
WCHAR_MAXwchar_t 的最大值如果 wchar_t 是有符號的:127 或更大
如果 wchar_t 是無符號的:255 或更大
WINT_MINwint_t 的最小值如果 wint_t 是有符號的:-32767 或更小
如果 wint_t 是無符號的:0
WINT_MAXwint_t 的最大值如果 wint_t 是有符號的:32767 或更大
如果 wint_t 是無符號的:65535 或更大

類函式宏

這些類函式宏展開為適合初始化上述型別物件的整型常量
描述
INTMAX_C展開為 intmax_t 型別的值
UINTMAX_C展開為 uintmax_t 型別的值
INTN_C展開為 int_leastN_t 型別的值
UINTN_C展開為 uint_leastN_t 型別的值

例如:
1
INTMAX_C(2012)  // expands to 2012LL or similar