Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

2STUPID4C

Name: Anonymous 2016-12-29 5:44

I have smoked a significant amount of 420 but still can't understand how this macro function works:
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})


https://github.com/torvalds/linux/blob/master/include/linux/kernel.h

Name: Anonymous 2016-12-30 7:59

>>2
What's the point of the typeof stuff on the first line? It's cast to char * for byte pointer arithmetic anyway, so wouldn't char *__mptr = (char *)(ptr); work fine?

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List