#define OFFSETOF(type, field) ((size_t)&(((type *)0)->field)) spa
(type *)0:把0地址當成type類型的指針。 指針
((type *)0)->field:對應域的變量。 變量
&((type *)0)->field:取該變量的地址,其實就等於該域相對於0地址的偏移量。 數據
(size_t)&(((type *)0)->field):將該地址(偏移量)轉化爲size_t型數據。