关于单片机的内存对齐问题
在使用C语言编写单片机程序时,是否要考虑内存对齐?如果有内存对齐,请问是几字节对齐?在哪可以调整?
[解决办法]
LZ说的是结构体内部的对齐吗?别的位置我没遇到过,结构体内部有。
我说的这个对齐方式取决于编译器,并非所有编译器都支持用伪指令更改对齐设置。写个验证小程序用指针读出结构体内容即可观察内嵌的对齐方式与大小端结构。如果不能修改对齐方式,记住默认的对齐方式即可,通常默认的都是效率最高的。
[解决办法]
51是8位单片机,不用考虑字节对齐。现在单片机中要求字节对齐的主要是ARM等32位单片机,它的寻址是以字(4字节)方式,可以去网上找一下ARM字节对齐来了解一下。