为什么C语言中bool型变量占用一个字节
来源:互联网 发布:复旦管院 知乎 编辑:程序博客网 时间:2024/05/16 09:38
C99标准新增bool型数据,占用一个字节,不满8bit的部分(可能)会填0对齐。
1.效率:CPU 一下子就能处理 32bit or 64bit的数据,所以直接填满了来处理,这样可能效率更高。比如说,有的目标平台处理双字节的速度比单字节要快,于是很多单字节数据类型就可以用自定义一个双字节类型代替。bool亦如是,只不过是把自定义(成单字节数据)这件事转给编译器做了而已。
2.寻址:如果要是有只占用一个 bit 的变量,那么它保存的时候也应该是只占用一个 bit,假设这一个 bit 放在一个空的byte 的首位,那么剩下的七个 bit要怎么处理呢?存东西还是不存东西?如果要存,那么之后的顺序就都乱了------地址值要具体到每一个 byte 了,8 =2^3,所以地址值直接增加三位,这样整个系统的代价太大了。所以就直接用 byte来保存,浪费点是难免的,要以大局为重。(类似于结构体的字节对齐现象)。
1 0
- 为什么C语言中bool型变量占用一个字节
- C语言中,定义一个布尔型变量如何用,为什么我用bool定义会报错?
- C语言bool变量
- C/C++—— C++中一个空对象为什么还要占用一个字节空间
- C语言中的bool变量
- C语言中的bool变量
- C语言中的BOOL变量
- c语言中的bool变量
- c语言中bool型的使用
- bool型变量占用多大内存空间?
- c 语言中定义bool
- C语言变量类型和占用字节数以及值的范围小结
- 在c语言中 为什么 /x3d占几个字节
- C语言实现bool型
- c语言中没有string类型变量怎么办?没有bool怎么办?
- C语言中指针变量所占字节大小
- Oracle中一个汉字占用字节长度
- C语言中实用BOOL类型
- 求两个链表的相交节点(算法)
- C的几个简答题
- 堆和栈的区别(windows内存管理)
- UESTC 方老师与素数
- 统计二进制中1的个数
- 为什么C语言中bool型变量占用一个字节
- 希尔排序
- 编辑工具
- 一次jvm调优实战
- geoserver 中points 制定sld样式 学习笔记
- Day13持久化存储——SQLite数据库存储
- 导航类视图之UITabBarController
- Unicode
- OpenSessionInViewFilter作用及配置