我将一些生成的代码从Keil移植到Linux。此C代码由GUI PLC工具自动生成,并且不得更改(控制逻辑是最终用户针对其用例创建的) 这仅在带有Keil OS的ARM硬件上运行。 现在我们要在32位ARM和x86上运行该软件
对于ARM,我们可以选择-mstructure-size-option=32
来使结构至少4个字节。此选项不适用于x86,并且由于例如以下原因,如果没有该选项,代码将无法运行。
struct myStruct { char i; }
在ARM Linux上,sizeof(myStruct)
= 4字节,-mstructure-size-option=32
在x86 32位Linux sizeof(myStruct)
= 1字节上
在x86上gcc是否可以将结构大小设为4字节的倍数?我不是在说结构内部的填充或对齐...