Linux中用到的零长数组
来源:互联网 发布:网络电话软件排行 编辑:程序博客网 时间:2024/06/08 17:46
零长数组一般用于在预先不知道结构体具体大小,而进行的一种动态内存分配方式,在Linux中是较为广泛使用的,例如像sk_buff、devres结构体;
下面的结构体(设备资源结构体)便用到了零长数组:
struct devres {struct devres_nodenode;/* -- 3 pointers */unsigned long longdata[];/* guarantee ull alignment */};
struct devres_node {struct list_headentry;dr_release_trelease;#ifdef CONFIG_DEBUG_DEVRESconst char*name;size_tsize;#endif};
devers中的data是个零长数组,对应于res资源分配;当devres分配的空间大于三个字节数(devres_node长度)时,data域便可以访问到那多出来的数据部分,即资源数据;由于设备资源的不确定性,所以用到这个零长数组是非常必要的,可以灵活分配所需要的的内存空间。
Linux中的许多设计思路涉及到“抽象”的概念,例如本例中,对于设备资源 就是一种抽象概念,对于预先分配多少存储空间我们是无法确定的,于是零长数组就有了用武之地。
0 0
- Linux中用到的零长数组
- C语言的零长数组
- C语言的零长数组
- 零长数组
- 零长数组
- 结构体零长数组的妙用
- 结构体零长数组的作用
- c语言零长数组及对数组名的理解
- linux中用到的命令
- 关于零长数组
- 关于零长数组
- 零长数组剖析
- <C语言>零长数组
- 零长数组(柔性数组)
- php中用到的linux命令
- 工作中用到的linux命令
- Linux platform中用到的数据结构分析
- 实习中用到的Linux命令总结
- 剑指offer之面试题35第一次只出现一次的字符
- SQL创建表
- 机房网络规划
- 构造函数和析构函数
- PostgresQL 数据库统计信息查看
- Linux中用到的零长数组
- [算法][ACM]hdoj 1009 FatMouse' Trade
- redis数据结构指南:set
- 知道如何能够免费用上EDIUS Pro 8
- ios状态栏UIStatusBar
- redis数据结构指南:sorted set
- python科学计算
- PHP 正则表达式
- Win7系统截图小工具