B001-Atmega16-对齐模式和大小端
2022-01-11 来源:eefocus
测试以确定Atmega16的对齐模式和大小端
先贴出结果:
- 小端模式
- 无对齐要求(1字节对齐)
测试代码
// 测试变量
struct {
uint8_t type0;
uint16_t code0;
uint8_t type1;
uint16_t code1;
uint32_t data;
}code_data;
uint32_t second = 0x00989680;
uint8_t *pSecond = (uint8_t *)&second;
uint8_t dSecond[4] = {10,20,30,40};
// 求取结果
dSecond[0] = *(pSecond + 0);
dSecond[1] = *(pSecond + 1);
dSecond[2] = *(pSecond + 2);
dSecond[3] = *(pSecond + 3);
event_8.data = sizeof(code_data);
硬件调试的结果如下图:
1、second = 0x00989680,低字节0x80对应dSecond[0] = *(pSecond + 0),即低字节位于内存的低地址。
所以机器是小端模式。
2、event_8.data = sizeof(code_data) = 10、表示该结构体是按照1字节对齐。
或者说是没有对齐的要求。
下一篇:新型按键扫描程序(C程序)
相关文章