使用do{ } while(0)的好处
看到过一些程序中或者宏中使用do{} while (0)觉得挺奇怪,不知道为什么这么写,就百度了一下...
看到一个比较好的帖子,给大家分享下!
我遇见的宏#define AB1 a; b; // x, 下面语句b不能被执行: if (cond) AB1;#define AB2 { a; b; } // x, 下面语句编译出错:if (cond) AB2; else ...;#define AB3 a, b // x, 有运算符优先级问题#define AB4 do { a; b; } while (0)前面几个都是有问题的,只有do while(0)解决得比较好。
- 3楼xuqianghit昨天 09:59
- 避免使用goto和宏定义 日常用的比较多
- 2楼wangeen昨天 09:49
- 小技巧 学习了n当你执行一段代码到一半,想跳过剩下的一半的时候,如果你正处于do while循环中,则能用break达到这个目的。
- 1楼LB_BW昨天 16:25
- 可以写的不错。
- Re: jk110333昨天 20:35
- 回复LB_BWn我只是总结整理了一下帖子里的几个高手写的 感觉不错就写上来了!