在C和C ++中,我是否能保证所有指针的大小都相同,或者换句话说:
sizeof(void*) = sizeof(char*) = sizeof(int*) = ...
还是有一些不合适的系统?
答案 0 :(得分:0)
没有。标准中无法保证。
某些系统有一些例外。虽然它在许多典型系统中已得到修复,但依赖于该系统的体系结构。例如,在32位系统中,指针是4个字节。
顺便说一下,uintptr_t
可以保存指针(也许我们可以假设它在当前系统中具有指针的最大大小):
uintptr_t
能够持有指针的无符号整数类型