关注+星标公众号,及时获取更多技术分享~
作者 | 冰茶奥利奥
微信公众号 | 嵌入式电子创客街
在x86架构下,我们经常会有这种操作:
uint8_t TestBytes[10] = {0, 1, 2, 3, 4, 5, 6, 7};
uint32_t IntData;
IntData = *(uint32_t *&)TestBytes[2];
//输出结果
>>IntData = 0x05040302; //大端
>>IntData = 0x02030405; //小端
对一个单字节数组进行取地址,然后强制转换为整数指针后取值,再赋值给IntData变量。
这样赋值后,如果CPU是常规的小端模式(Little End)的话,IntData的赋值结果就是0x5432;如果是大端模式的话,就是0x2345。相当于把数组TestBytes里的元素值依次赋给了IntData的四个字节。如下图所示: