songxueyu的专栏

Stay hungry,stay foolish

#define LIST_HEAD_INIT(name) { &(name), &(name) } what?!!

刚开始看点源码,完全被惊呆了。。。这才叫高手写的代码啊!奋斗有朝一日咱也要到达那样的高度


#define LIST_HEAD_INIT(name) {&(name),&(name)} 是什么意思?光看这个宏一辈子也看不明白,源文件是这么定义使用的


#define LIST_HEAD_INIT(name) { &(name), &(name) }

#define LIST_HEAD(name) \
	struct list_head name = LIST_HEAD_INIT(name)

所以说

LIST_HEAD(list);
//相当于
struct list_head list={&(list),&(list)};
明白了吧,原来就是初始化一个结构体啊!(骂人人家名字不是告诉你了嘛!废话)
写个程序测试一下吧
LIST_HEAD(list);
printf("%u\n%u\n%u\n",&list,list.prev,list.next);


阅读更多
个人分类: Linux C语言
上一篇关于文件结束符EOF
下一篇C语言中的typeof关键字
想对作者说点什么? 我来说一句

免费的vpn小白兔软件

2011年06月08日 978KB 下载

没有更多推荐了,返回首页

关闭
关闭