为什么在C(和C ++)标准中使用uintptr_t和intpr_t可选类型?

时间:2018-11-19 17:54:56

标签: c++ c c++11 c99

对于C99(及更高版本的标准),标准要求某些类型可以在标头<stdint.h>中使用。对于精确的宽度(例如int8_tint16_t等),它们是可选的,并且是出于标准原因。

但是对于uintptr_tintptr_t类型,它们也是可选的,但是我看不出为什么它们是可选的而不是必需的原因。

1 个答案:

答案 0 :(得分:7)

在某些平台上,指针类型的大小比任何整数类型大得多。我相信这样的平台示例是IBM AS / 400,其虚拟指令集将所有指针定义为128位。