Кто хорошо знает С по полочкам разложите что сие код делает:
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})
Больше всего меня интересует два вопроса: 1 - как понимать нуль при обращении к члену структуры (подразумевается что type есть некая структура) 2 - как блок {} может возвращать какое либо значение (или я чего не догоняю)