首页 > 解决方案 > C 和 Java 中数据类型的大小?

问题描述

数据类型在 C 中的大小,例如 int 是 2 个字节,而在 Java 中 int 的大小是 4 个字节,其他数据类型也是如此。为什么Java中数据类型的大小是双倍的?

标签: javac

解决方案


C 中数据类型的大小是特定于实现的。对于 16 位机器,int 是 2 个字节,对于 32 位机器,它是 4 个字节,而对于 64 位机器,它是 4 个或 8 个字节。(Windows 10 上的 Visual Studios 2019 产生 4 个字节,而我的 Linux 机器上的 FCC 产生 8 个字节。)

要检查您的 int 大小,请使用“sizeof(int)”。

C 编译器还可以定义 int16_t、int32_t 或 int64_t,以及 int16、int32 和 int64,只是为了让事情变得有趣。当您将近半个世纪的历史烙印在一种语言上时,就会发生这种情况。这就是 sizeof 如此重要的原因,因为硬编码大小可能适用于一种编译器,但可能不适用于另一种编译器。


推荐阅读