我正在阅读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. Agda的尺寸类型是什么?
- 5. 为什么在C#中bool数据类型的大小只有1位?
- 6. Bool * X,这是什么数据类型?
- 7. 将pcm数据转换为小尺寸音频类型 - Java/Android
- 8. gtk最小尺寸
- 9. 尺寸设计:不知道事实与尺寸为某些类型的数据
- 10. GGplot2的最小尺寸geom_text()
- 11. 为什么std :: aligned_union需要最小尺寸作为模板参数?
- 12. MySQL BOOL和BOOLEAN列数据类型有什么区别?
- 13. Cordova PhoneGap采用最小尺寸的mp4类型捕获视频
- 14. 什么是start_urls的最大尺寸
- 15. 为什么<input type =“text”>的实际尺寸小于指定尺寸?
- 16. Magento:最小数量不同的尺寸
- 17. 为什么没有尺寸的CSS属性?
- 18. 为什么没有数字数据类型为0 - 4,294,967,294
- 19. 按钮:最小尺寸
- 20. 布局和最小尺寸
- 21. 最小化图片尺寸
- 22. 最小对分尺寸?
- 23. html-div,最小尺寸
- 24. 浮动QDockWidget最小尺寸
- 25. Qt的布局系统(的QTextEdit还没有最小尺寸)
- 26. 最大尺寸的小工具没有遵循AlignHCenter
- 27. 为什么仿真器的尺寸与上述尺寸不同
- 28. 为什么UIImage的尺寸比实际尺寸大3倍?
- 29. 为什么AIR没有开始全尺寸?
- 30. 为什么[UIScreen mainScreen] .bounds]没有返回全屏尺寸?
它不是重复的,我不是问为什么是布尔1字节的大小,我只是问为什么没有布尔的最小尺寸。 –
*所有*数据类型至少有一个字节。 –
@KeithThompson所有数据类型都是1字节自动保证,因为最小的可寻址单元的内存是1字节。 –