亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C 和 Java 中數據類型的大???

C 和 Java 中數據類型的大???

犯罪嫌疑人X 2024-01-25 21:41:09
例如,C 中的數據類型 int 的大小為 2 個字節,而 Java 中的 int 的大小為 4 個字節,其他數據類型也是如此。為什么Java中數據類型的大小是double?
查看完整描述

3 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

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 如此重要,因為對大小進行硬編碼可能適用于一種編譯器,但可能不適用于另一種編譯器。


查看完整回答
反對 回復 2024-01-25
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

C 指定最小類型大小,并且不同實現之間使用的實際大小存在差異。另一方面,Java 指定了精確的類型大小,因此實現之間沒有差異。

有些程序員總是喜歡指定每種類型的確切大小。如果您這樣做,您可能會更喜歡 Java?;蛘?,在 C 中,您可以包含標頭<inttypes.h>并使用 C 的精確大小類型,例如int16_tint32_t。

但在回答你的問題“為什么 Java 中的類型是兩倍大?”時,這是無法回答的,因為問題的前提是有缺陷的。你說,“例如,在 C 中,int 是 2 個字節”,但事實并非如此。最小保證大小為 2 個字節,但在當今最流行的機器上為 4 個字節。


查看完整回答
反對 回復 2024-01-25
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

C 和 Java 對于可移植性有不同的方法。

由于編譯后的 C 代碼(通常)在本機運行,因此 C 規范避免強制指定特定大小,因為這會因不同機器而異。相反,它指定每種類型必須能夠表示的最小值范圍。An必須至少int能夠表示range ,這意味著它必須至少有16 位寬,但也可以更寬。在現代桌面平臺上,它通常是 32 位寬。[-32767..32767]

編譯后的 Java 代碼 OTOH(通常)在虛擬機(基本上是機器級解釋器)中運行,并且指定 VM,以便類型始終具有固定大小。VM 負責將 Java 類型映射到本機計算機,因此在 16 位平臺上運行的 VM 可能需要做一些有趣的操作來表示 32 位int.


查看完整回答
反對 回復 2024-01-25
  • 3 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號