为什么C++中int和long类型都是4个字节?

2025-06-15 07:20:58

除了AProgrammer可能回答了你的实际问题,没有人回答。

C/C++标准的定义如Griwes所描述。这允许C和C++语言在编译器供应商可以定义最方便计算机架构大小的情况下进行实现。一段时间内(对于Windows 3.1及之前的版本,即Windows 95之前),Windows的C代码具有16位int,而许多UNIX平台(如Solaris、HPUX和AIX)具有32位int。

然而,现代微型计算机(自386以来)具有完整的32位寄存器,并且将内存对齐到32位比访问16位增量要快得多。因此,使用32位int的代码比使用16位int的代码更有效率,特别是对于int数组。

为了在32位寄存器中模拟16位int,您还必须在第16位上溢出,而不是第32位。因此,即使您只有32位可用于long,使用32位int也更容易。