1.Determine the struct/class address based on it member address #define list_entry(ptr, type, member) / ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) Assume that type is defined as follows.
class net_address{
public:
long m_address;
short m_port;
};
Then ((net_address*)0)->m_port denotes the offset of m_port in net_address.