私はARMを使用しています。奇数オフセットでの読み取り/書き込みが原因でアライメント エラーが発生しました (ARM が 4 バイトでアライメントされていることはわかっていました)。私のプログラムで定義されているすべての構造体は、次のように1バイトで整列されています
#pragma pack(push, 1)
typedef struct
{
char a1;
int a2;
char a3;
}a;
#pragma pack(pop)
私はやろうとしています
#pragma pack(push, 1)
typedef struct
{
char a1 __attribute__ ((aligned (4)));
int a2;
char a3;
}a;
#pragma pack(pop)
gcc attribute _ attribute _ ((aligned (4)))は効果がありません。
Note :: The above code is not my actual code. sample scenario.
そのため、アライメントの問題を解決するために構造体メンバーを再配置しました。再配置が可能な解決策であるか、または_ attribute _をこのシナリオで機能させることができるかを確認したい. 他のソリューションは大歓迎です。前もって感謝します。