关于结构体中自定义变量的偏移(offset)
2016-08-04 15:40
246 查看
内核链表中的结构和我们平常写的结构不同,我们的是在自定义的链表结点中定义链表结点的数据结构体中,而linux内核中却是在数据结构中包含结点,这样我们就不用为每一种类型定义一个结点结构了。整体效果如图(别人的图):
有一个问题是我们在知道了链表中指向结点域中的地址后需要找到数据结构的开始。
linux实现如下:
其中的offsetof用来求数据结构中变量的偏移:
自己写了个小程序测试了一下:
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int a;
int y;
int b;
}Node;
int main()
{
unsigned int offset=(unsigned int)&(((Node *)0)->b);
printf("offet=%u\n",offset);
return 0;
}
感觉对指针的理解很有帮助,与大家分享下。
有一个问题是我们在知道了链表中指向结点域中的地址后需要找到数据结构的开始。
linux实现如下:
其中的offsetof用来求数据结构中变量的偏移:
自己写了个小程序测试了一下:
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int a;
int y;
int b;
}Node;
int main()
{
unsigned int offset=(unsigned int)&(((Node *)0)->b);
printf("offet=%u\n",offset);
return 0;
}
感觉对指针的理解很有帮助,与大家分享下。
相关文章推荐
- 关于由结构体首地址算其内部的一些变量时所用的偏移和CONTAINING_RECORD宏
- 关于C语言结构体成员变量偏移的一点思考
- 困惑,关于OpenCV中把多个结构体变量存入XML中的问题。
- 关于结构体成员变量的字节对齐的分析
- 关于结构体成员变量初始化的一些资料
- 关于Go语言,自定义结构体标签的一个妙用.
- 关于IE下jquery.offset发生偏移问题+jquery.qtip偏移问题
- C# 笔记(三)--关于结构体变量
- C语言中结构体偏移及结构体成员变量访问方式的问题讨论
- 关于自定义导航条UIBarButtonItem偏移的问题
- 关于结构体中变量空间占用问题思考
- 结构体成员变量的偏移值
- 关于NSUserDefaults保存自定义变量的方式
- 成员变量在结构体中的偏移——offsetof(type, member)
- php关于自定义变量:$_SERVER['HTTP_X_REQUESTED_WITH']的解说!
- iOS7新特性-完美解决iOS7关于自定义导航条UIBarButtonItem偏移的问题
- [ZZ]关于结构体成员变量的字节对齐的分析
- mysql中关于用户自定义的变量
- iOS7新特性-完美解决iOS7关于自定义导航条UIBarButtonItem偏移的问题
- 关于数据包分析中Fragment offset(分片偏移)字段的十六进制码解读