C语言:do{}while(0)

logicpath
• 阅读 1573

do{} while(0)好处

替代{},实现局部作用域.

#define fun() \
    do { fun1(); fun2(); } while(0)
if (condition) fun(); else { ... }; // ok 

// compared with

#define fun() {fun1(); fun2(); }
if (condition) fun(); else { ... }; // compile error; 

避免使用goto,用break做跳出.

do {
    fun1();
    ...
    fun2();
    if (condition) {
        break;
    }
    fun3();
    fun4();
} while(0);
点赞
收藏
评论区
推荐文章
Karen110 Karen110
3年前
一篇文章带你了解JavaScript While 循环
循环可以执行一个代码块,只要指定条件为真,循环就可以执行代码块。一、While循环while只要指定条件的值为真,循环就会执行指定语句。while循环的语法while(condition)statement//只要条件为真,就执行代码例:项目JavaScriptwhile语句只要n小于5,就遍历一段代码:varn0;while(n<
检测root环境代码
1.检测路径javapublicbooleanc(){StringstrArr{"/system/bin/","/system/xbin/","/system/sbin/","/sbin/","/vendor/bin/"};inti0;while(i<5){
Wesley13 Wesley13
3年前
java基础语法循环结构
循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。Java中主要的循环结构:while循环(适用情况,固定次数循环)do…while循环(适用情况,“当.....”循环)for循环(适用情况,“直到....”循环)while循环while是最基本的循环,它的结构为:whi
九路 九路
4年前
一个int数组,奇数排前,偶数排后,算法实现
//奇数排前,偶数排后publicstaticvoidsortOdd(intdata){intl0;intrdata.length1;while(l<r){while(l<r&&datar%20)
Wesley13 Wesley13
3年前
C语言求1
问题:用C语言编写程序求11/31/51/7...示例:1include<stdio.h2voidmain(){3intn1;4floatsum0,a1;5while(a<100){6s
Wesley13 Wesley13
3年前
Java循环结构
Java循环结构for,while和do...while顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,就需要使用循环结构。while循环do...while循环for循环在Java5中引入了一种主要用于数组的增强
Wesley13 Wesley13
3年前
mysql 遍历方式
mysql遍历方式可以使用while,loop和repeat来实现,示例如下:BEGINDECLAREiINTDEFAULT0;WHILEWHILEi<5DOSETii1;ENDWHILE;SELECTi;
Wesley13 Wesley13
3年前
Java知识系统回顾整理01基础05控制流程03 while
while和dowhile循环语句一、while:条件为true时重复执行只要while中的表达式成立,就会不断地循环执行!(https://oscimg.oschina.net/oscnet/f7f8d003013b0b12222c5a5cbd78fe0ca96.png)publicclassHelloWorld{
Wesley13 Wesley13
3年前
JdiDemo
HelloWorld.javapackagecom.my.jdi;publicclassHelloWorld{publicstaticvoidmain(Stringargs)throwsException{inti0;while(true){
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(