您好、欢迎来到现金彩票网!
当前位置:手机棋牌游戏平台 > 位域 >

求大神指教C语言中的位域

发布时间:2019-06-16 18:26 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  两个数据结构的位域都在整形(4字节)里分配, 如果不足一个整形的部分就按一个整形算

  下面的图说明了位域在内存里的存储情况, 可以看到, 两种情况下位域都只占了一个字节, 不足一个整形(4字节), 所以就按一个整形算

  32位计算机中,为了内存的存取速度, 一次会读取4个字节。 在储存数据时, 也会按照4字节一个单元把数据对其。

  比如这个例子里, a,b在第1个字节, i在第2,3个字节, m放在第5~8个字节, 而不是4~7字节, 这样在读取m时只需要一次内存操作。(如果在4~7字节需要先读取1~4字节, 再读取5~8字节)

  如果你把i和m的顺序换一下, sizeof结果会不一样, 也是这个原因

  展开全部两个数据结构都用整型来分配位域,即使没有全部把整型的32个位用完,sizeof仍然算整个整型的大小4字节。

  这两个数据结构都是用了整型的1字节8个比特,在大头字节序的CPU上,这个字节是整型的最低位字节,其他高位的3字节没有用到。在这个字节内部,按变量定义的顺序,从低位到高位依次存放。

  struct A里,a在整型第一字节的低位5个比特,b在整型第一字节高位3个比特。struct B类似。追问谢谢你的回答

  譬如ARM是小头字节序,PowerPC是大头字节序。区别就是高位字节放在前还是放在后。

http://lake-macquarie.com/weiyu/235.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有