10

因此,offsetof(struct, field)返回普通结构中字段的相对偏移量。但是有没有办法获得嵌套结构内字段的相对偏移量。

例如

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

有没有办法获得(在运行时)的偏移量bc相对于my_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 回答