理解 C 中 int 和 long 之间的区别
C 中 int 和 long 数据类型之间的区别经常引起问题。虽然它们都占用 4 个字节并共享相同的值范围似乎很简单,但这种假设并不完全准确。
关键区别在于它们的大小和值范围取决于实现。这意味着不同的平台或编译器可能会不同地定义这些类型。
例如,在 Windows 系统上,int 和 long 的大小均为 4 个字节,值范围为 -2,147,483,648 到 2,147,483,647 (2^31) 。在其他系统上,这可能不成立。
例如,在 Alpha 系统上,long 为 64 位宽,而 int 仍为 32 位。这意味着 long 的值范围在 Alpha 系统上明显更大。
Intel C 编译器提供了可变平台大小规则的全面指南:
OS | Architecture | Size |
---|---|---|
Windows | IA-32 | 4 bytes |
Windows | Intel 64 | 4 bytes |
Windows | IA-64 | 4 bytes |
Linux | IA-32 | 4 bytes |
Linux | Intel 64 | 8 bytes |
Linux | IA-64 | 8 bytes |
Mac OS X | IA-32 | 4 bytes |
Mac OS X | Intel 64 | 8 bytes |
因此,在 int 和 long 之间进行选择时,考虑所使用的平台或编译器很重要。如果不考虑特定于实现的特征,它们不应互换使用。
以上是C 中'int”和'long”之间的真正区别是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!