Linux源码中链表的声明和初始化
2015-10-08 16:26
176 查看
(1)使用LIST_HEAD宏在编译时静态初始化
/*list_head数据结构体成员next和pre初始化×/
#define LIST_HEAD_INIT(name) { &(name),&(name) }
#define LIST_HAED(name) struct list_head name = LIST_HEAD_INIT(name)
/*等价于define LIST_HAED(name) struct list_head name = { &(name),&(name) }*/
LIST_HEAD(mylist); 展开宏:struct list_head mylist = { &(mylist).&(mylist) };
LIST_HEAD(mylist); 编译阶段就定义一个变量并初始化(编译时静态初始化),但作用等同于以下更常用的运行时初始化的写法:
struct list_head mylist;
INIT_LIST_HEAD(&mylist);
(2)使用INIT_LIST_HEAD()在运行时进行初始化
static inline void INIT_LIST_HEAD(struct list_head *list)
{
list->next = list;
list->next = list;
}
struct list_head list;
INIT_LIST_HEAD(&list);
/*list_head数据结构体成员next和pre初始化×/
#define LIST_HEAD_INIT(name) { &(name),&(name) }
#define LIST_HAED(name) struct list_head name = LIST_HEAD_INIT(name)
/*等价于define LIST_HAED(name) struct list_head name = { &(name),&(name) }*/
LIST_HEAD(mylist); 展开宏:struct list_head mylist = { &(mylist).&(mylist) };
LIST_HEAD(mylist); 编译阶段就定义一个变量并初始化(编译时静态初始化),但作用等同于以下更常用的运行时初始化的写法:
struct list_head mylist;
INIT_LIST_HEAD(&mylist);
(2)使用INIT_LIST_HEAD()在运行时进行初始化
static inline void INIT_LIST_HEAD(struct list_head *list)
{
list->next = list;
list->next = list;
}
struct list_head list;
INIT_LIST_HEAD(&list);
相关文章推荐
- 在CentOS上MySQL数据库服务器配置方法
- linux 查看linux 版本
- Linux PHP开发环境:CentOS下配置LAMP开发环境
- Linux加载DTS设备节点的过程(以高通8974平台为例)
- Linux加载DTS设备节点的过程(以高通8974平台为例)
- linux 多线程信号总结
- linux 查看PHP版本
- Linux内核的构建过程----Linux内核剖析(五)
- linux下查看mysql版本
- Linux安装Hadoop--集群配置
- linux kernel docs
- linux下select使用
- Linux进程间通信方式
- Ubuntu(Linux)下设置环境变量的方法
- linux快速入门 1.1命令行操作
- 个人Linux学习笔记(三)
- linux中patch的用法
- .net在linux下部署项目
- 软件测试人员需要精通的开发语言(3)--- Linux
- Windows通过Python登录Linux服务器 ----SSH