摘要: linux内核和其他一些开源的代码中,经常会遇到这样的代码: 这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢? 实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处: 1、辅助定义复杂的宏,避免 阅读全文
posted @ 2016-11-04 17:16 午时的海 阅读(2178) 评论(0) 推荐(0) 编辑
摘要: #在英语里面叫做 pound 在C语言的宏定义中,一个#表示字符串化;两个#代表concatenate 举例如下: 得到的结果是: token9=9 I am quit command 阅读全文
posted @ 2016-11-04 16:07 午时的海 阅读(579) 评论(0) 推荐(0) 编辑
摘要: C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。 关于#和## 在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量 通过替换后 阅读全文
posted @ 2016-11-04 15:49 午时的海 阅读(7285) 评论(0) 推荐(1) 编辑