【发布时间】:2012-02-11 21:59:08
【问题描述】:
我想知道是否可以保证,在 32 位和 64 位系统中,sizeof(int) 始终等于 sizeof(void*)(即分别为 32 位和 64 位)。
此外,我需要知道是否始终保证 long int 可以同时容纳 int 和 void* 的位,例如
long int lint = (((int)integer)<<sizeof(int)) | (void*)ptr;
【问题讨论】:
-
long int和int实际上在许多平台上具有 相同 大小。 -
(((int)integer)<<sizeof(int)) | (void*)ptr永远无法工作的首要原因是<<移动位,sizeof(int)以字节表示。 -
保证 sizeof (long int) >= sizeof (int)
-
也许如果您告诉我们您真正想要完成什么,我们可以用一些更准确的解决方案来回答。
-
@AndréCaron:“否”非常准确:)
标签: c++