在20世纪80年代从16位到32位的转变中,int
的大小要么是16位,要么是32位。使用当前的64位过渡命名规则,我了解到ILP32和LP32机器的分布相当均匀。当时人们普遍认为,在任何给定的体系结构中,int
都将遵循寄存器或指针宽度,并且 long
仍然保持32位。
快进25年,我看到LP64已经非常主流,但直到我在2007年发现桌面Linux之前,我总是期望IP64成为下一个逻辑步骤。
- 这是否是64位的预期演进(指LP64)?
- “char ≤ short ≤ int ≤ long”关系如何适应这种固定整数类型的新兴方案,以便我们在离开不同平台时能够轻松移植代码?
- 这些过渡计划与各平台上使用(您选择的大小写)
WORD
/DWORD
有何关系? - Windows某些领域仍包含16位的
INT
形式。 Windows会走出LLP64吗,还是为时已晚? - 为什么这次选择留下
int
,而不是在32位转换期间留下它?
long
固定为32位,那么int
就永远无法增长,因为根据定义sizeof(int) <= sizeof(long)
。因此,IP64从未被考虑过。 - Ben Voigtshort
和int
至少为16位,long
至少为32位以及short
不超过int
,int
不超过long
的限制。”这意味着sizeof(int) <= sizeof(long)
。 - wovanolong long int
的等级应大于long int
的等级,long int
的等级应大于int
的等级,int
的等级应大于short int
的等级,short int
的等级应大于signed char
的等级_”。 - wovano