10

したがって、offsetof(struct, field)単純な構造内のフィールドの相対オフセットを返します。しかし、ネストされた構造内のフィールドの相対オフセットを取得する方法はありますか?

例えば

struct my_struct {
   int a;
   struct {
      int b;
      int c;
   } anonymous_struct;
}

(実行時に)相対的なオフセットを取得する方法はありますかbcmy_struct

4

1 に答える 1

16

はい、引き続きご利用いただけますoffsetof

例えば

size_t boff = offsetof(struct my_struct, anonymous_struct.b);

の要件はoffsetoftypemember-designatorが、指定されたstatictypet;&(t.member-designator)がアドレス定数に評価されるようなものでなければならないということです。member-designatorは単純な識別子である必要はありません。

于 2012-06-03T21:55:02.197 に答える