**缺少 `#include
#include
#include // 關鍵:引入精確寬度整數類型
int main(void) {
uint8_t a = 0b1; // C14 二進制字面量 (GCC/Clang/MSVC 19.20+ 支持)
printf("a = %u\n", a);
return 0;
}
| 類型 | 含義 | printf 格式 | scanf 格式 |
|---|---|---|---|
| int8_t / uint8_t | 精確 8 位有符號/無符號 | PRIu8 / PRIx8 (inttypes.h) | SCNu8 / SCNx8 |
| int16_t / uint16_t | 精確 16 位 | PRIu16 | SCNu16 |
| int32_t / uint32_t | 精確 32 位 | PRIu32 | SCNu32 |
| int64_t / uint64_t | 精確 64 位 | PRIu64 | SCNu64 |
| intptr_t / uintptr_t | 能容納指針的整數 | PRIuPTR | SCNuPTR |
| intmax_t / uintmax_t | 最大寬度整數 | PRIuMAX | SCNuMAX |
#include // 定義 PRIu8 等宏
#include
uint8_t a = 255;
printf("a = %" PRIu8 "\n", a); // 輸出: a = 255
// PRIu8 在 32位展開為 "u",64位同理,保證跨平台正確