(size_t)&(((s*)0) - > m)中的(s*)0是什么意思

Iva*_*iev 3 c++

这是stddef.h中的一系列宏之一.

#define offsetof(s,m)   (size_t)&(((s *)0)->m)
Run Code Online (Sandbox Code Playgroud)

(s*)0是什么意思?

Ern*_*ill 7

这是一种编写NULL类型指针的方法pointer-to-s.通过采取的地址m的成员s,其地址为0,你得到的偏移ms.