C: Что означает этот макрос?

Как вы читаете вторую строку этого макроса? Что означает (type *) 0 в данном контексте?

#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})
5
задан Jens Gustedt 21 November 2011 в 07:55
поделиться