当前位置: 技术问答>linux和unix
语法问题
来源: 互联网 发布时间:2016-12-28
本文导语: #define _offsetof(t,m) ((int)((caddr_t)&((t*)0)->m)) masklen=_offsetof(struct sockaddr_dl,sdl_data[0])+unitlen+namelen; 宏定义中的0应该怎么理解啊? | 给你举个例子: struct Sample { int a; ...
#define _offsetof(t,m) ((int)((caddr_t)&((t*)0)->m))
masklen=_offsetof(struct sockaddr_dl,sdl_data[0])+unitlen+namelen;
宏定义中的0应该怎么理解啊?
masklen=_offsetof(struct sockaddr_dl,sdl_data[0])+unitlen+namelen;
宏定义中的0应该怎么理解啊?
|
给你举个例子:
struct Sample {
int a;
int b;
char c;
};
(Struct Sample *)0->c 就是获取c在结构体内部的偏移量地址。
同样,你的语句里面就是获取m在结构内部的偏移
struct Sample {
int a;
int b;
char c;
};
(Struct Sample *)0->c 就是获取c在结构体内部的偏移量地址。
同样,你的语句里面就是获取m在结构内部的偏移