私はこの問題を調べようとしましたが、うまくいく解決策を見つけられませんでした。私のコンパイラは#pragmapack(push)#pragma pack(2)を無視しており、__属性__((aligned(2)、packed))も問題を解決しません。スタックは8バイトで整列されており、一部の構造を2バイトで整列するように変換したいと考えています。-fpack-structは機能しますが、すべての構造に影響します。
#pragmaパックを使用したいのですが。
SDK 13.3 eclipse IDE GCC#4.1.2でザイリンクスmicroblazeをプログラミングしています
コンパイラがプラグマパックを無視する原因がわからないと思います。警告をオフにしたくありません。使用したいと思います。
#pragma pack(push)
#pragma pack(2)
struct _Size_Test
{
union
{
struct{
int8 x;
int8 y;
};
int16 z;
};
}Size_Test;
#pragma pack(pop)
sizeof(Size_test)= 4(2である必要がある場合)
属性の追加((aligned(2)、packed))は機能しません
struct _Size_Test
{
union
{
struct{
int8 x;
int8 y;
};
int16 z;
};
}Size_Test _attribute_((aligned(2),packed));