출처: ??
struct item { int number1; int number2; struct list_head *list; }; int main(void) { struct item item1; struct item *current = NULL; item1.number1 = 20; item1.number2 = 30; current = ( struct item* )( (char*)&item1.list - offsetof(struct item, list) ) }
&item1.list 은 item1의 list 주소값 - offset(struct item.list) 은 struct item 내의 list의 옵셋
즉 list1 의 시작 주소값이 나옴