0、引言 我们在嵌入式开发的过程中,经常可以碰到在一些宏定义或者是代码段中使用了do {...} while(0)的语句,从语义上理解,do {...} while(0)内的逻辑就只执行一次,并没有循环执行,粗略看来,似乎画蛇添足了,那么为什么还需要在只执行一次的逻辑外面加上一层do {...} while(0)语句呢?实际上,在这些逻...
(3)需要注意的是,do-while 结构中的循环条件始终为 false(0),因此代码块只会被执行一次。 (4)让程序更加美观,由于 do-while 结构本质上是一个语句,因此需要使用分号作为结尾,以标识语句的结束。但是在没有加do-while(0)的宏里面,最后一条语句不能加上“;”。这样容易导致阅读障碍。 实例 以下是一个使用 d...
do{CCImage*pImage=newCCImage();CC_BREAK_IF(NULL== pImage);bRet=pImage->initWithString(text, (int)dimensions.width, (int)dimensions.height, eAlign, fontName, (int)fontSize);CC_BREAK_IF(!bRet);bRet=initWithImage(pImage);CC_SAFE_RELEASE(pImage);} while (0); 1. 2. 3. 4. 5. 6. 7....
}while(0)intmain() {intflag =0;if( flag ==1) printf_func();elseprintf("flag = 0\n");return0; } 这样就没有问题了,而且在循环中,由于while括号中的条件是 0 ,只会被执行一次。
do{ ... }while(0) 这样的代码相当于执行一次循环体,咋看之下似乎没有一点作用,其实大体上可以包含如下功能: 代码分块 辅助定义复杂的宏,避免出错 起到goto的功能 代码分块 do{}while(0)可用于代码分块,这样和直接使用{}的功能差不多,可以在块内定义局部变量而不必担心命名冲突: int a = 10; std::...
百度试题 题目用while语句构成循环时,循环至少执行0次,do-while语句构成循环时,循环至少执行()次。相关知识点: 试题来源: 解析
do { statement_1; statement_2; } while (0);性能方面,编译器会自动优化...
地球人都知道,do-while语句是C/C++中的一个循环语句,特点是: 至少执行一次循环体; 在循环的尾部进行结束条件的判断。 其实do-while还可以用在其他一些场合中,非常巧妙的处理你的一些难题,比如: 在宏定义中写复杂的语句; 在函数体中中止代码段的处理。
do-while循环的循环体最少被执行[ ]次,而while循环的循环体最少被执行0次。相关知识点: 试题来源: 解析 正确答案:1解析:do-while循环属于“直到型”循环,无论终止条件是否满足都会执行一次循环体。 while循环属于“当型”循环,当满足终止条件时,循环体一次都不被执行。