鸿 网 互 联 www.68idc.cn

nginx取结构体地址

来源:互联网 作者:佚名 时间:2018-03-04 13:34
linux内核提供了一个container_of()宏,可以根据结构体某个成员的地址找到父结构的地址。 #define container_of(ptr, type, member) ({ \ const typeof ( ((type *) 0 )-member ) *__mptr = (ptr);\ (type *)( ( char *)__mptr - offsetof(type,member) );)

linux内核提供了一个container_of()宏,可以根据结构体某个成员的地址找到父结构的地址。

#define container_of(ptr, type, member) ({ \ 
    const typeof( ((type *)0)->member ) *__mptr = (ptr);\ 
(type *)( (char *)__mptr - offsetof(type,member) );)

而在Nginx也是效仿采用一样的宏获取父结构地址。

#define ngx_queue_data(q, type, link)   \
    (type *) ((u_char *) q - offsetof(type, link))
网友评论
<