在嵌套结构中查找相对偏移量

时间:2012-06-03 21:51:58

标签: c

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

e.g。

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

有没有办法获得bc相对于my_struct的偏移量(在运行时)。

1 个答案:

答案 0 :(得分:12)

是的,您仍然可以使用offsetof

E.g。

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

offsetof的要求是类型成员 - 指示符必须是static 类型 t;&(t. member-designator )评估为地址常量。 member-designator 不一定是简单的标识符。