#include "iostream"
#define List_entry(type,member)\
(type *)((char*)(&member)-(unsigned long)(&(((type*))->data)) )
using namespace std; struct list_head{
int data;
char* name;
}; void main(){
list_head list;
cout<<List_entry(struct list_head,list.name)<<endl; cout<<&list<<endl; cout<<&(((struct list_head *))->name)<<endl;
}