0

このユニオンのサイズは16バイトを返します(C ++ Builder 2007の場合)。

typedef union
{
  struct
  {
    unsigned Type:2; 
    unsigned Prev:31;
    unsigned Next:31;
    unsigned SizeInBytes:32;
  };
} eMyUnion;

sizeof(eMyUnion)= 12バイトが必要な場合、このユニオン定義をどのように変更する必要がありますか?
(これらのフィールドとそのサイズを保持したいのですが、並べ替えることができます)。
可能です ?

4

1 に答える 1

1
#pragma pack(push, 1)
  struct
  {
    unsigned Type:2; 
    unsigned Prev:31;
    unsigned Next:31;
    unsigned SizeInBytes:32;
  };
#pragma pack(pop)
于 2013-02-21T12:21:35.590 に答える