1
struct Test
{
    int a;
    char b;
    int c;
} __attribute__((packed, aligned( 128 )))test;

sizeof(test)は128を返します。

サイズが9ではないのはなぜですか?

メモリは128の倍数に丸められますか?

例えば:

struct Test
{
 int b;
 char c;
} test;

sizeof(test)は8を返します(8の倍数に丸められます)

4

1 に答える 1

3

の配列を作成する場合struct Test、各要素は128バイトに整列する必要があるため、これを維持するには、構造体の各インスタンスを128バイトの倍数にパディングする必要があります。したがってsizeof(struct Test)、=128です。

于 2012-09-19T11:01:50.677 に答える