假设指针是C中int的大小是否安全?

com*_*man 8 c pointers language-design

在设计新的编程语言时,可以安全地假设C int和指针在机器上的大小相同吗?

小智 16

不可以.指针可以大于或小于整数.如果由于某种原因需要将指针作为整数传递(比如执行整数,而不是指针,算术),则可以保证它们适合intptr_t.

它们不能保证符合另一个答案中建议的size_t,但实际上它们不太可能,因为最大的可寻址大小通常等于最大的可寻址地址.


Pup*_*ppy 5

一点都不.许多编译器没有相同的大小.