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

STM32 M3内核 keil编译器位域定义中在前面的是放在低位的还是高

发布时间:2019-06-27 02:06 来源:未知 编辑:admin

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

  就像你定义一个8位数据A,若A取值范围为0~1,那就是A的bit0位可能为0、可能为1,而其他位均固定为0;若A取值范围为0~3,那A的bit0、bit1位是可0、可1,而其他位固定为0不变。。。。。

  同样道理,在1个字节内的位段,存放占位时也是先低位(bit0),再高位的呀。追问我原先也是下意识的认为是低位,但是百度的时候发现这个问题依据编译器而定的,例如V6对于位域的地址分配好像就很杂乱,总有点搞不懂的节奏。所以直接指定keil mdk。追答其实这个问题,你用Keil编个小程序测试一下就可以知道。

  我没用过V6,所以不知道它的地址是怎么分配的,但是我之前看到这个问题,第一反应是根据系统或编译器是大端还是小端来决定;后面才想起,大端、小端是关于字节的存放地址分配,而字节内的地址分配跟它们没有关系。

  而字节内的数据存放,我知道的默认情况下是低位对齐的,倒是也有一些不是按这样规则的,不知道V6是否如此。 不过Keil在我的测试下,它默认是按低位对齐的。

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