当前位置:嗨网首页>书籍在线阅读

60-精确宽度类型

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

B.6.1 精确宽度类型

typedef 标识了一组精确宽度的类型,通用形式是 intN_t (有符号类型)和 uintN_t (无符号类型),其中 N 表示位数(即类型的宽度)。但是要注意,不是所有的系统都支持所有的这些类型。例如,最小可用内存大小是 16 位的系统就不支持 int8_tuint8_t 类型。格式宏可以使用 di 表示有符号类型,所以 PRIi8SCNi8 都有效。对于无符号类型,可以使用 oxu 以获得 %o%x%X 转换说明来代替 %u 。例如,可以使用 PRIX32 以十六进制格式打印 uint32_t 类型的值。表B.6.1列出了精确宽度类型、格式说明符和最小值、最大值。

表B.6.1 精确宽度类型

| 类型名 | printf() 说明符 | scanf() 说明符 | 最小值 | 最大值 | | :----- | :----- | :----- | :----- | :----- | :----- | :----- | | int8_t | PRId8 | SCNd8 | INT8_MIN | INT8_MAX | | int16_t | PRId16 | SCNd16 | INT16_MIN | INT16_MAX | | int32_t | PRId32 | SCNd32 | INT32_MIN | INT32_MAX | | int64_t | PRId64 | SCNd64 | INT64_MIN | INT64_MAX | | uint8_t | PRIu8 | SCNu8 | 0 | UINT8_MAX | | uint16_t | PRIu16 | SCNu16 | 0 | UINT16_MAX | | uint32_t | PRIu32 | SCNu32 | 0 | UINT32_MAX | | uint64_t | PRIu64 | SCNu64 | 0 | UINT64_MAX |