【发布时间】:2019-05-15 14:36:44
【问题描述】:
也许更好的问题是,当我的编译器告诉我 sizeof(int) = sizeof(long) = 4 字节时,long 怎么可能存储比整数更大的数字?我无法绕过它......为什么不会溢出?当需要更大的数字时,它是否会在运行时进行调整?
【问题讨论】:
-
在C中,
int和long等类型的大小在不同的系统上可以不同。如果int和long在您的系统上具有相同的位数,那么long不能存储比int更大的数字。 -
对于 C99(及更高版本),您可以尝试
long long或<stdint.h>types:int_least32_t,int_least64_t -
问题是您假设
long可以存储比int更大的数字。情况不一定如此。
标签: c int long-integer