#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);


阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

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