我对 C 中的 longs 工作时间有点困惑。
如果我在 Java 中询问 long 的最大值,我会得到一个以 quintillions 为单位的数字。如果我在 C 中要求它,有符号或无符号,它是数十亿。
Java 是建立在 C 之上的...那么差异从何而来?
我还尝试用 long long 值、unsigned/signed long 值和 long int 值来表示文字。他们似乎都无法处理超过 50 亿的数字。为什么?我做错了吗?
最佳答案
C 标准将 long
定义为至少与 int
一样大。实际大小取决于实现。 Java 不是这种情况,其中 long
要求为 64 位长。
C99 标准定义了固定大小的整数类型,例如 stdint.h
中定义的 int64_t
,如果您需要在所有平台上使用固定大小的整数,您可以使用它。
关于java - 如何在 C 中使用 Long 数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8622669/