<cstdint>
中的类型(如int16_t
、uint_fast64_t
、int_least8_t
)是否保证是内置类型之一(如short
、unsigned long
等)的typedef
?还是实现可以使用非通常的内置类型来实现固定宽度类型?
<cstdint>
中的类型(如int16_t
、uint_fast64_t
、int_least8_t
)是否保证是内置类型之一(如short
、unsigned long
等)的typedef
?<cstdint>
,有以下内容:namespace std {
typedef signed-integer-type int8_t; // optional
typedef signed-integer-type int16_t; // optional
typedef signed-integer-type int32_t; // optional
typedef signed-integer-type int64_t; // optional
[ etc. ]
}
“有符号整型”由核心语言定义,包括“标准有符号整型”(即signed char、short int、int、long int和long long int)以及任何实现定义的“扩展有符号整型”。
同样,“无符号整型”由核心语言定义,包括“标准无符号整型”(即unsigned char、unsigned short int、unsigned int、unsigned long int和unsigned long long int)以及与扩展有符号整型相对应的任何实现定义的“扩展无符号整型”。
简而言之,这些typedef中的每一个都可以是常见的内置类型或实现定义的扩展整型。大多数编译器不支持扩展整型,在这些编译器上它们必须是内置类型。
<cstdint>
中的类型。 - Baum mit Augen<cstdint>
中的类型必须是有符号或无符号整数类型,gnasher729 的引用显示了标准如何定义“有符号整数类型”。展示“有符号整数类型”允许“扩展有符号整数类型”回答了你的问题,不是吗? - user743382
intN_t
类型一定不会是标准类型的 typedef。 - Anton Savin