嵌入式linux内存对齐问题
我在函数里定义了一个数组unsigned char buf[100],当我赋值的时候发现
*(unsigned int *)(buf + 5) = x;时发现如果开始地址不是4的整数倍都会自动对齐;请问如何可以任意赋值?修改编译器还是怎么?我用的arm-linux-gcc如何修改?
[解决办法]
不支持非对齐访问的处理器,只能通过截获和处理访问异常来达到目的,性能惨淡。
用package修饰数据结构,编译器可以处理,那是另外一个问题。