|
|
От: | graniar | |
| Дата: | 08.11.23 23:11 | ||
| Оценка: | |||
#define GetAggregateByMember(Aggregate,MemberName,MemberLink) \
((Aggregate*)(((size_t)(MemberLink))-((size_t)&((Aggregate*)(size_t)0)->MemberName)))
struct B{
int side;
B* peer;
};
struct A{
B b[2];
A(){
b[0].side=0;
b[1].side=1;
}
};
B* pb;
//...
A* a1 = GetAggregateByMember(A,b[pb->side],pb);