#define do{} while(0) 是什么意思?
#define do{} while(0) 为什么这么用呢?
什么情况下需要宏定义do{}while(0)呢?
简单地说,就是为了能够实现复杂的定义,通用性强,任何情况下都适用。
...
by DerekGuo_lzu - 移动操作系统 - 2011-12-22 08:51:16 阅读(709) 回复(0)
在驱动代码中经常看到如下形式的代码: do{ _ _ gpio_as_output(GPIO_LCD_VCC_EN_N) ; ... } while(0); 或者 #define ENTER() do{...}while(0) 我的问题是为什么要加个do{}while(0) 循环呢,直接写里面的函数调用或者宏定义不行(就是不用do{}while(0)同样执行一次)吗? 或者这样写有什么好处呢,求解释!!!
// setup int status = 0; do { // preconditions status = doSomething(); if (status) break; status = doSomethingElse(); if (status) break; // computation status = doWhatYouWantedToInTheFirstPlace(); } while (false); // cleanup return status;
do..while 是重复叙述的循环,可以分成两种模式。 最单纯的就是只有 while 的循环。用来在指定的条件内,不断地重覆指定的步骤。语法如下 while (expr) { statement } 其中的 expr 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 下例很有趣,要电脑的浏览器出现十次 "以后不敢了" 的字符串,前面并加上数字,表示说了...
[color="#0000ff"]do while语句的特点是先执行循环体,然后判断循环条件是否成立。其一般形式为 do 循环体语句 while (表达式); 它是这样执行的:[color="#0000ff"]先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(“真”) 时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。 可以用图6.3表示其流程。请注意do while循环用N S流程图的表示形式(图6.3(b))。 程序如下: main() {...
as: #define __cpu_raise_softirq(cpu, nr) do { softirq_pending(cpu) |= 1UL << (nr); } while (0)
1:for循环 for语句的格式为: for (初始化语句; 条件语句; 控制语句) { 语句1 ; 语句2 ; .... 语句n ; } for 语句的执行顺序是:首先执行“初始化语句”;然后测试“条件语句”;若条件成立,则执行语句1到语句n;然后执行“控制”语句;接着再测试条件语句是否成立,如果成立则重复执行以上过程,直至条件不成立时才结束for循环。如: for(i=0;i10 break ; i = i +1 ; } for循环中省略“条件语句”时,在for语句{}中...
fpin=fopen("1.txt","w"); fpout=popen("/bin/ls","r"); while(fgets(line,MAXLINE,fpin)!=NULL) { if(fputs(line,fpout)==EOF) printf("error"); } 是正确的 而 fpin=fopen("1.txt","w"); fpout=popen("/bin/ls","r"); do { if(fgets(line,MAXLINE,fpin)==NULL) printf("error"); }while(fputs(line,fpout)!=EOF); 错误那? 下面的那一个是死循环; [ 本帖最后由 mu_mu8309 于 2006-12-1 15:04 编...
AWK 控制语句(if for do while) 在linux awk的 while、do-while和for语句中允许使用break,continue语句来控制流程走向,也允许使用exit这样的语句来退出。break中断当前正在执行的循环并跳到循环外执行下一条语句。if 是流程选择用法。 awk中,流程控制语句,语法结构,与c语言类型。下面是各个语句用法。 一.条件判断语句(if) if(表达式) #if ( Variable in Array ) 语句1 else 语句2 格式中"语句1"可以...