Linux内核可谓是集C语言大成者,从中我们可以学到非常多的技巧,本文来学习一下宏技巧,文章有点长,但耐心看完后C语言level直接飙升。
本文出自:大叔的嵌入式小站,一个简单的嵌入式/单片机学习、交流小站
从Linux内核中学习高级C语言宏技巧
1.用do{}while(0)把宏包起来
#define init_hashtable_nodes(p, b) do { \
int _i; \
hash_init((p)->htable##b); \
...略去 \
} while (0)
Linux中常见如上定义宏的形式,我们都知道do{}while(0)只执行一次,那么这个有什么意义呢?
我们写一个更简单的宏,来看看<