因此,offsetof(struct, field)
返回普通结构内字段的相对偏移量。但是有没有办法在嵌套结构中获得字段的相对偏移量。
e.g。
struct my_struct {
int a;
struct {
int b;
int c;
} anonymous_struct;
}
有没有办法获得b
和c
相对于my_struct
的偏移量(在运行时)。
答案 0 :(得分:12)
是的,您仍然可以使用offsetof
。
E.g。
size_t boff = offsetof(struct my_struct, anonymous_struct.b);
offsetof
的要求是类型和成员 - 指示符必须是static
类型 t;
,&(t.
member-designator )
评估为地址常量。 member-designator 不一定是简单的标识符。