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

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

int的大小是否取決于編譯器和/或處理器?

int的大小是否取決于編譯器和/或處理器?

C++
千萬里不及你 2019-07-09 13:21:44
int的大小是否取決于編譯器和/或處理器?整數的大小是否取決于編譯器、操作系統和處理器?
查看完整描述

3 回答

?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

這個問題的答案取決于我們愿意得到多遠的實際考慮。

從理論上講,C和C+中的一切都取決于編譯器,而僅僅取決于編譯器。硬件/操作系統一點也不重要。編譯器可以自由地實現任何厚度和絕對模仿任何東西。沒有什么可以阻止C或C+實現int任何大小的類型和任何表示形式,只要它足夠大以滿足語言標準中規定的最低要求。這種抽象級別的實用示例是現成的,例如基于“虛擬機”平臺的編程語言,如Java。

然而,C和C+的意圖是高度高效率語言。為了達到最大的效率,C或C+實現必須考慮從底層硬件派生的某些考慮因素。因此,確保每個基本類型都基于硬件直接(或幾乎直接)支持的某種表示是很有意義的。從這個意義上說,基本類型的大小確實取決于硬件。

換句話說,64位硬件/OS平臺的特定C或C+實現是完全免費的。int作為一個71位1的補碼符號整數類型,占用128位內存,使用其他57位作為填充位,這是總是需要存儲編譯器作者的女朋友的生日。這種實現甚至具有一定的實用價值:它可以用于執行C/C+程序可移植性的運行時測試。但這正是實現的實際效用所在。不要指望在“普通”C/C+編譯器中看到類似的東西。


查看完整回答
反對 回復 2019-07-09
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

是的,會的。它們是否意味著“它將依賴于哪一個:編譯器還是處理器”?在這種情況下,答案基本上是“兩者兼而有之”。正常情況下,int不會大于處理器寄存器(除非小于16位),但它可以更小(例如,運行在64位處理器上的32位編譯器)。但是,通常情況下,您將需要一個64位處理器來運行64位int的代碼。


查看完整回答
反對 回復 2019-07-09
  • 3 回答
  • 0 關注
  • 756 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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