我正在閱讀C++ Primer,遇到一個包含C++數據類型最小保證大小的表,因爲它寫的是不保證bool的最小大小。
有什麼特別的原因嗎?爲什麼沒有最小尺寸的bool數據類型?
回答
理論上,布爾的大小隻需要一位,但在內存分配中,類型需要與其他類型兼容,並且填充位有時用於不同的編譯器和計算機體系結構,以便最小的膠囊存儲任何數據類型是一個字節。
Why is a boolean 1 byte and not 1 bit of size?
按照最後的評論,我應該從維基百科的文章字節加上這句話:
字節/baɪt/是在計算和電信數字信息的單元最常見的是由八位。從歷史上看,字節是用於在計算機中編碼單個字符文本的位數[1] [2],因此它是許多計算機體系結構中最小的可尋址內存單元。
不要忘記,'bool'類型的變量也必須是可尋址的(例如使用操作符'&'的地址),這也意味着它必須至少是系統的最小可尋址單元,通常是一個字節。 –
在C++中,「字節」與「char」同義,並被定義爲最小的可尋址內存單元。 – Casey
您應該引用C++和/或C標準的相關部分,因爲在前者中找不到保證「bool」的一個字節的任何內容。問題是爲什麼它*不*保證的最小尺寸。 – juanchopanza
- 1. 爲什麼mxCreateNumericMatrix的最大尺寸小於系統最大陣列尺寸?
- 2. 爲什麼視頻的尺寸小於iOS照片的尺寸
- 3. 爲什麼SS生成所有Int數據類型爲bool?
- 4. 爲什麼在C#中bool數據類型的大小隻有1位?
- 5. Bool * X,這是什麼數據類型?
- 6. 將pcm數據轉換爲小尺寸音頻類型 - Java/Android
- 7. gtk最小尺寸
- 8. 尺寸設計:不知道事實與尺寸爲某些類型的數據
- 9. GGplot2的最小尺寸geom_text()
- 10. 爲什麼std :: aligned_union需要最小尺寸作爲模板參數?
- 11. MySQL BOOL和BOOLEAN列數據類型有什麼區別?
- 12. Cordova PhoneGap採用最小尺寸的mp4類型捕獲視頻
- 13. Magento:最小數量不同的尺寸
- 14. 爲什麼<input type =「text」>的實際尺寸小於指定尺寸?
- 15. 什麼是start_urls的最大尺寸
- 16. 爲什麼沒有尺寸的CSS屬性?
- 17. 爲什麼沒有數字數據類型爲0 - 4,294,967,294
- 18. html-div,最小尺寸
- 19. 最小化圖片尺寸
- 20. 最小對分尺寸?
- 21. 佈局和最小尺寸
- 22. 按鈕:最小尺寸
- 23. Qt的佈局系統(的QTextEdit還沒有最小尺寸)
- 24. 最大尺寸的小工具沒有遵循AlignHCenter
- 25. 爲什麼仿真器的尺寸與上述尺寸不同
- 26. 爲什麼UIImage的尺寸比實際尺寸大3倍?
- 27. 爲什麼[UIScreen mainScreen] .bounds]沒有返回全屏尺寸?
- 28. 爲什麼AIR沒有開始全尺寸?
- 29. 爲什麼bool沒有用float表示?
- 30. 用於有效分類的最小紋理圖像尺寸
它不是重複的,我不是問爲什麼是布爾1字節的大小,我只是問爲什麼沒有布爾的最小尺寸。 –
*所有*數據類型至少有一個字節。 –
@KeithThompson所有數據類型都是1字節自動保證,因爲最小的可尋址單元的內存是1字節。 –