sizeof(void *)和sizeof(int(*)(void))
以前一直没注意过这个问题,今天在邮件列表看到 Matthew Flemming 发的邮件才知道实际上 C 标准并不保证 sizeof(void *) == sizeof(int(*)(void))。不过,几乎所有的现代系统上这个等式都是成立的。
例外的情况是类似 x86 实模式这类分段的内存模型中,函数指针可能默认是个far pointer(不过话说,现在还有人为这样的硬件写C吗?);另外据说IA64上也不一样,不过没有办法证实或证伪。