固定寬度整數型別 (C99 起)
來自 cppreference.com
目錄 |
[編輯] 型別
定義於標頭檔案
<stdint.h> | |
int8_t int16_t int32_t int64_t
|
寬度分別為 恰好 8、16、32 和 64 位的有符號整數型別 沒有填充位,對負值使用 2 的補碼 (僅當實現直接支援該型別時才提供) |
int_fast8_t int_fast16_t int_fast32_t int_fast64_t
|
寬度至少分別為 8、16、32 和 64 位的最快有符號整數型別 |
int_least8_t int_least16_t int_least32_t int_least64_t
|
寬度至少為的最小有符號整數型別 8、16、32 和 64 位的最快有符號整數型別 |
intmax_t
|
最大寬度整數型別 |
intptr_t
|
能夠容納指標的整數型別 |
uint8_t uint16_t uint32_t uint64_t
|
寬度分別為 恰好 8、16、32 和 64 位的有符號整數型別 (僅當實現直接支援該型別時才提供) |
uint_fast8_t uint_fast16_t uint_fast32_t uint_fast64_t
|
寬度至少分別為的最快無符號整數型別 8、16、32 和 64 位的最快有符號整數型別 |
uint_least8_t uint_least16_t uint_least32_t uint_least64_t
|
寬度至少為的最小無符號整數型別 8、16、32 和 64 位的最快有符號整數型別 |
uintmax_t
|
最大寬度無符號整數型別 |
uintptr_t
|
能夠容納指標的無符號整數型別 |
當 N 不是 8、16、32 或 64 時,實現可以定義類型別名 intN_t
、int_fastN_t
、int_leastN_t
、uintN_t
、uint_fastN_t
和 uint_leastN_t
。只有當實現支援具有該寬度且無填充的整數型別時,才能定義 intN_t
形式的類型別名。因此,uint24_t 表示寬度恰好為 24 位的無符號整數型別。
下面列出的每個宏當且僅當實現定義了相應的類型別名時才被定義。宏 INTN_C
和 UINTN_C
分別對應於類型別名 int_leastN_t
和 uint_leastN_t
。
[編輯] 宏常量
定義於標頭檔案
<stdint.h> | |
有符號整數:寬度 | |
INT8_WIDTHINT16_WIDTHINT32_WIDTHINT64_WIDTH (C23)(可選) |
型別為 int8_t、int16_t、int32_t、int64_t 的物件的位寬 (恰好為 8、16、32、64) (宏常量) |
INT_FAST8_WIDTHINT_FAST16_WIDTHINT_FAST32_WIDTHINT_FAST64_WIDTH (C23) |
型別為 int_fast8_t、int_fast16_t、int_fast32_t、int_fast64_t 的物件的位寬 (宏常量) |
INT_LEAST8_WIDTHINT_LEAST16_WIDTHINT_LEAST32_WIDTHINT_LEAST64_WIDTH (C23) |
型別為 int_least8_t、int_least16_t、int_least32_t、int_least64_t 的物件的位寬 (宏常量) |
INTPTR_WIDTH (C23)(可選) |
型別為 intptr_t 的物件的位寬 (宏常量) |
INTMAX_WIDTH (C23) |
型別為 intmax_t 的物件的位寬 (宏常量) |
有符號整數:最小值 | |
INT8_MININT16_MININT32_MININT64_MIN |
型別為 int8_t、int16_t、int32_t、int64_t 的物件的最小值 (宏常量) |
INT_FAST8_MININT_FAST16_MININT_FAST32_MININT_FAST64_MIN |
型別為 int_fast8_t、int_fast16_t、int_fast32_t、int_fast64_t 的物件的最小值 (宏常量) |
INT_LEAST8_MININT_LEAST16_MININT_LEAST32_MININT_LEAST64_MIN |
型別為 int_least8_t、int_least16_t、int_least32_t、int_least64_t 的物件的最小值 (宏常量) |
INTPTR_MIN |
型別為 intptr_t 的物件的最小值 (宏常量) |
INTMAX_MIN |
型別為 intmax_t 的物件的最小值 (宏常量) |
有符號整數:最大值 | |
INT8_MAXINT16_MAXINT32_MAXINT64_MAX |
型別為 int8_t、int16_t、int32_t、int64_t 的物件的最大值 (宏常量) |
INT_FAST8_MAXINT_FAST16_MAXINT_FAST32_MAXINT_FAST64_MAX |
型別為 int_fast8_t、int_fast16_t、int_fast32_t、int_fast64_t 的物件的最大值 (宏常量) |
INT_LEAST8_MAXINT_LEAST16_MAXINT_LEAST32_MAXINT_LEAST64_MAX |
型別為 int_least8_t、int_least16_t、int_least32_t、int_least64_t 的物件的最大值 (宏常量) |
INTPTR_MAX |
型別為 intptr_t 的物件的最大值 (宏常量) |
INTMAX_MAX |
型別為 intmax_t 的物件的最大值 (宏常量) |
無符號整數:寬度 | |
UINT8_WIDTHUINT16_WIDTHUINT32_WIDTHUINT64_WIDTH (C23)(可選) |
型別為 uint8_t、uint16_t、uint32_t、uint64_t 的物件的位寬 (恰好為 8、16、32、64) (宏常量) |
UINT_FAST8_WIDTHUINT_FAST16_WIDTHUINT_FAST32_WIDTHUINT_FAST64_WIDTH (C23) |
型別為 uint_fast8_t、uint_fast16_t、uint_fast32_t、uint_fast64_t 的物件的位寬 (宏常量) |
UINT_LEAST8_WIDTHUINT_LEAST16_WIDTHUINT_LEAST32_WIDTHUINT_LEAST64_WIDTH (C23) |
型別為 uint_least8_t、uint_least16_t、uint_least32_t、uint_least64_t 的物件的位寬 (宏常量) |
UINTPTR_WIDTH (C23)(可選) |
型別為 uintptr_t 的物件的位寬 (宏常量) |
UINTMAX_WIDTH (C23) |
型別為 uintmax_t 的物件的位寬 (宏常量) |
無符號整數:最大值 | |
UINT8_MAXUINT16_MAXUINT32_MAXUINT64_MAX |
型別為 uint8_t、uint16_t、uint32_t、uint64_t 的物件的最大值 (宏常量) |
UINT_FAST8_MAXUINT_FAST16_MAXUINT_FAST32_MAXUINT_FAST64_MAX |
型別為 uint_fast8_t、uint_fast16_t、uint_fast32_t、uint_fast64_t 的物件的最大值 (宏常量) |
UINT_LEAST8_MAXUINT_LEAST16_MAXUINT_LEAST32_MAXUINT_LEAST64_MAX |
型別為 uint_least8_t、uint_least16_t、uint_least32_t、uint_least64_t 的物件的最大值 (宏常量) |
UINTPTR_MAX |
型別為 uintptr_t 的物件的最大值 (宏常量) |
UINTMAX_MAX |
型別為 uintmax_t 的物件的最大值 (宏常量) |
[編輯] 用於最小寬度整數常量的函式宏
INT8_CINT16_CINT32_CINT64_C |
展開為具有其引數指定的值和分別為 int_least8_t、int_least16_t、int_least32_t、int_least64_t 型別的整數常量表達式 (函式宏) |
INTMAX_C |
展開為具有其引數指定的值和 intmax_t 型別的整數常量表達式 (函式宏) |
UINT8_CUINT16_CUINT32_CUINT64_C |
展開為具有其引數指定的值和分別為 uint_least8_t、uint_least16_t、uint_least32_t、uint_least64_t 型別的整數常量表達式 (函式宏) |
UINTMAX_C |
展開為具有其引數指定的值和 uintmax_t 型別的整數常量表達式 (函式宏) |
#include <stdint.h> UINT64_C(0x123) // might expand to 0x123ULL or 0x123UL
[編輯] 格式宏常量
在標頭檔案
<inttypes.h> 中定義 |
[編輯] 用於 fprintf 函式族的格式常量
這裡列出的每個 PRI
宏當且僅當實現定義了相應的類型別名時才被定義。
等價於 對 int 或 unsigned int |
描述 | 資料型別宏 | ||||
---|---|---|---|---|---|---|
[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 函式族的格式常量
這裡列出的每個 SCN
宏當且僅當實現定義了相應的類型別名並且該型別具有合適的 fscanf 長度修飾符時才被定義。
等價於 對 int 或 unsigned int |
描述 | 資料型別宏 | ||||
---|---|---|---|---|---|---|
[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 |
[編輯] 示例
[編輯] 參考文獻
- C23 標準 (ISO/IEC 9899:2024)
- 7.8.1 格式說明符宏 (p: TBD)
- 7.18 整數型別 <stdint.h> (p: TBD)
- C17 標準 (ISO/IEC 9899:2018)
- 7.8.1 格式說明符宏 (p: 158-159)
- 7.18 整數型別 <stdint.h> (p: 212-216)
- C11 標準 (ISO/IEC 9899:2011)
- 7.8.1 格式說明符宏 (p: 217-218)
- 7.18 整數型別 <stdint.h> (p: 289-295)
- C99 標準 (ISO/IEC 9899:1999)
- 7.8.1 格式說明符宏 (p: 198-199)
- 7.18 整數型別 <stdint.h> (p: 255-261)
[編輯] 另請參閱
C++ 文件 關於 固定寬度整數型別
| |