Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1271506
  • 博文数量: 482
  • 博客积分: 13297
  • 博客等级: 上将
  • 技术积分: 2890
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-12 16:25
文章分类

全部博文(482)

文章存档

2012年(9)

2011年(407)

2010年(66)

分类: LINUX

2011-03-29 19:30:55

发表于:2010-08-07 20:25:56
除了用LIST_HEAD()宏在声明的时候初始化一个链表以外,Linux还提供了一个INIT_LIST_HEAD宏用于运行时初始化链表:

#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)
 


我们用INIT_LIST_HEAD(&nf_sockopts)来使用它。

只 执行了一条语句,为什么还要循环?
回复于:2010-08-07 20:53:35
一种写法而已,while(0)不成立,所以只会执行一次,
回复于:2010-08-29 15:39:04
为了让INIT_LIST_HEAD()满足语法规范吧,写成do while循环的话,如果漏了后面的“;”编译器就会报错。
====
阅读(680) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~