关于C语言下的宏中出现do{}while(0)解读
来源:互联网 发布:新垣结衣身高 知乎 编辑:程序博客网 时间:2024/06/07 09:51
在编写C语言时常会使用这样的宏定义,此宏定义并非自创,但是用得十分普遍
#define max (a, b) \
do{ \
if(a > b){ \
a; \
}else{ \
b; \
} \
}while(0)
上述宏的实际效果就是:
#define max(a, b) (a>b)?a:b
代码中的do{ /*code*/ }while(0)的效果就是让中间的/*code*/执行一次,一般在用宏定义过程时候使用,发现这样可加强代码的可读性,减少代码的重复率,其中的“\”的作用:当代码的一句连续语句比较长时,可以用“\”进行分行(多次分行也支持)
不分行的效果如下:
#define max (a, b)do{if(a > b){ a;}else{ b;} }while(0)
看起来显然没有分行的可读性高。
0 0
- 关于C语言下的宏中出现do{}while(0)解读
- C语言宏定义中do while(0)的使用
- C语言中do...while(0)的妙用
- C语言中do...while(0)的妙用
- C语言中do...while(0)的妙用-避免goto
- C语言中do...while(0)的妙用
- C语言中do...while(0)的妙用
- C语言中#、##和do{}while(0)的高效用法
- C语言宏定义用do{}while(0)的情况
- C语言宏定义用do{}while(0)的情况
- C语言中宏的使用(#,##,do…while(0)宏)
- C语言宏定义中使用do{}while(0);的理由
- C语言中宏定义(#define)时do{...}while(0)的价值
- 关于宏中使用do{}while(0)的作用
- c语言中如何妙用do...while(0)语句
- c语言中的do while(0)的用法
- c语言中不用while,for,do-while实现循环
- C语言中循环结构语句 for循环及while,do--while 的使用
- python-sympy
- android 杂类笔记
- spring-08-如何解决异常处理
- 一个超长SQL语句的规范书写格式范例.
- Scrapy笔记(12)- 抓取动态网站
- 关于C语言下的宏中出现do{}while(0)解读
- 【题】【分治】NKOJ2307 棋盘覆盖问题
- 在Ubuntu14下切换内核
- android webview播放视频
- hdu3658 How many words 矩阵快速幂 + dp
- 了解CNN这一篇就够了:卷积神经网络技术及发展
- 小端字节序和大端字节序
- Squeezing space in Latex
- sed 's/^\(.\).*/\1/g' | tr 'a-z' 'A-Z'是什么意思