库宏总结

zo总结遇到的比较有意思的宏。

offsetof(s,m),在c里面是一个宏,在C++里有对应的函数。

宏的原型:

#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

宏的功能:

返回结构体成员MEMBER在结构体TYPE中的偏移量。将0强制转换为一个地址为0的结构体指针变量,编译器返回结构体中相应成员的地址,而该地址相对于为0的结构体首地址自然就是偏移量地址了。由于编译器特性实际没有访问这个空指针中的任何成员,因此也不会出现内存错误。

 

posted @ 2020-06-28 14:53  终有一刻和光同尘  阅读(68)  评论(0)    收藏  举报