Why is a char and a bool the same size in c++?(为什么 c++ 中 char 和 bool 的大小相同?)
问题描述
我正在阅读 C++ 编程语言. Stroustrup 在其中指出 sizeof(char) == 1 和 1 <= sizeof(bool)代码>.具体取决于实施.为什么像布尔值这样简单的值会占用与字符相同的空间?
I'm reading The C++ Programming Language. In it Stroustrup states that sizeof(char) == 1 and 1 <= sizeof(bool). The specifics depend on the implementation. Why would such a simple value as a boolean take the same space as a char?
推荐答案
在现代计算机体系结构中,字节是最小的可寻址内存单元.要将多个位打包到一个字节中,需要应用额外的位移操作.在编译器级别,这是内存与速度要求之间的权衡(在高性能软件中,那些额外的位移操作会不必要地增加和减慢应用程序的速度).
In modern computer architectures, a byte is the smallest addressable unit of memory. To pack multiple bits into a byte requires applying extra bit-shift operations. At the compiler level, it's a trade off of memory vs. speed requirements (and in high-performance software, those extra bit-shift operations can add up and slow down the application needlessly).
这篇关于为什么 c++ 中 char 和 bool 的大小相同?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:为什么 c++ 中 char 和 bool 的大小相同?
基础教程推荐
- c++ STL设置差异 2022-01-01
- C++:获取传递给函数的多维数组的行大小 2021-01-01
- 如何在 C++ 中正确使用命名空间? 2022-01-01
- 随机插入/删除的综合向量与链表基准 2022-01-01
- 与 CAS 的原子交换(使用 gcc 同步内置函数) 2022-01-01
- 为什么我们不能使用“虚拟继承"?在 COM 中? 2022-01-01
- 如何部分禁用 cmake C/C++ 自定义编译器检查 2021-01-01
- 如何更改 SysDateTimePick32 或 CDateTimeCtrl 的背景颜色? 2022-01-01
- 提升 ASIO 流缓冲 2021-01-01
- 将不可复制的闭包对象传递给 std::function 参数 2021-01-01
