struct
は、常にその構造体の最大整列メンバーと同じに整列されていますか?そうでない場合は、gcc固有の拡張機能を使用して、これを自動的にどのように強制することができますか? (私は__attribute((aligned(...)))__
があると知っていますが、アラインメントは明示的に指定しなければなりません)。構造体の整列したメンバーとのC++の整列
この動作はc99、C++ 99、およびC++ 11では異なりますか? C++ 11にはアライメントを強制するための追加の規定がありますか?
例:次のコードで 、自動的に8バイトに整列され、それ自体をFoo
ます、または私も明示的に整列する必要がありますか?
struct Foo{
int i __attribute__((aligned(8)));
};
なぜあなたは正確に尋ねますか? –
@Basile:例を追加しました。 – eudoxos
複合型の配置は、実際にはその最大のメンバーの配置です。これらのタイプの配列について考えてみましょう! –