do{}while(0)
do{}while(false)
do{}while(__LINE__==-1)
1.用在出错处理中,替代goto
//使用goto
bool Func()
{
bool ret = true;
ret=Func1();
&n
转载
精选
2012-03-17 14:53:09
678阅读
在Linux内核中,经常会看到do{}while(0)这样的语句,许多人开始都会疑惑,认为do{}while(0)毫无意义,因为他只会执行一次,加不加do{}while(0)效果是完全一样的,其实do{}while(0)主要用于宏定义中。这里用一个简单点的宏来演示:#define SAFE_FREE(p) do { free(p); p = NULL; } while(0)假设这里去掉do...while(0),即定义SAFE_FREE为:#define SAFE_FREE(p) free(p); p = NULL;那么以下代码:if (NULL != p) SAFE_...
原创
2022-01-04 16:22:44
171阅读
循环 n 次,除了最常用的 for (int i = 0; i 0) {...} 和 while (--n >= 0) {...}。这两种写法的区别在于,如果 n 是 unsigned 类型,那么后面那种写法会导致infinite loop。今天就被这只小 bug 咬了一口:) 也怪自己偷懒,不爱写 for 循环。Trackback: ://tb.blog..net/Trac...
转载
2007-12-17 10:22:00
122阅读
这节课我们学习Python的循环结构:
先学习最简单的while循环,循环语句很简单,甚至比分支语句要简单的多,关键词while后面也是条件表达式。条件表达式的结果无非就是真和假,满足条件进入循环,然后执行循环体内的语句。它的特点是进入循环后,每执行一次循环体内所有语句后,需要再判断,如果一直满足条件,就会一直循环,称为死循环。我们在做循环操作的时候一定要注意,因为循环会反复执行
转载
2023-08-25 15:58:30
405阅读
python之while语句详解1.基本介绍2. while语句练习2.1 求100以内所有奇数或偶数之和2.2 求100以内9的倍数之和,以及个数2.3 输出九九乘法表2.4 猜数字2.5 循环嵌套 1.基本介绍(1)定义:Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。 (2)基本形式while 判断条件(conditio
转载
2023-05-26 20:27:54
71阅读
IfyouareaCprogrammer,youmustbefamiliarwithmacros.Theyarepowerfulandcanhelpyoueaseyourworkifusedcorrectly.However,ifyoudon'tdefinemacroscarefully,theymaybiteyouanddriveyoucrazy.InmanyCprograms,youmayseeaspecialmacrodefinitionwhichmayseemnotsostraightforward.Hereisoneexample: 12#define__set_task_s
转载
2014-02-23 11:07:00
112阅读
2评论
Python学习笔记 3.0 while与循环循环一、循环简介二、while的语法应用一、循环应用之累加到100:应用二、计算1-100偶数累加和:三、认识break和continue1. 理解2. break实例:3.continue错误实例:四、while的嵌套1.语法:2.实例4.理解执行流程5.应用五、for循环1.语法2.break在for循环中的应用:3.continue在for循环
转载
2024-05-29 12:41:54
117阅读
辅助定义复杂的宏example: #define A(args) do { a(args); b() } while(0);如果定义#define A(args) a(args);b();if(i > 0) A(i) if(i > 0 )do { a(2);b();} while(
转载
精选
2014-07-23 10:08:24
326阅读
#define SAFE_FREE(p) do { free(p); p = N(int*)malloc(sizeof(int) * 4); // error C2181: 没有匹配 if 的非法
原创
2021-12-31 16:41:39
430阅读
1.帮助定义复杂的宏以避免错误举例来说,假设你需要定义这样一个宏:#define DOSOMETHING() foo1(); foo2();
这个宏的本意是,当调用DOSOMETHING()时,函数foo1()和foo2()都会被调用。但是如果你在调用的时候这么写:if(a>0) DOSOMETHING();因为宏在预处理的时候会直接被展开,你实际上写的代码是这个样子的:if(
转载
2019-04-24 20:35:00
67阅读
2评论
do { … } while (0) what is it good for?
It's the only construct in C that you can use to #define a multistatement operation, put a semicolon after, and still use within an if st
转载
2009-04-28 09:44:59
406阅读
如果你做过linux,你就会发现在很多地方的宏定义会用到:#define XXX_XXXX do{xxxx;xxx;}while(0)为什么这种执行一次的语句要有这种方式来实现。当然有原因! 为了看起来更清晰,这里用一个简单点的宏来演示:#define SAFE_DELETE(p) do{ delete p; p = NULL} while(0)假设这里去掉do...
原创
2021-08-13 10:37:21
275阅读
#define 字段 DO{语句1;语句2;。。。语句N;}while(0)
通常 宏定义#define 后边代替展开的只能是一条语句,用该结构后可以代替多个语句,且执行一次。有的初始化语句就用该结构‘
此外if(){
DO{if(条件1)语句1;break;\
if(条件2)语句2;break;
................
转载
2012-07-07 23:17:00
116阅读
2评论
do{…}while(0) 的巧用在linux内核代码中,有这样的宏定义:#define DUMP_WRITE(addr,nr) do{ memcpy(bufp,addr,nr); bufg+=nr; }while(0)这个宏定义意味着引用这个宏操作时会执行循
转载
2023-06-18 15:29:38
43阅读
1.帮助定义复杂的宏以避免错误
举例来说,假设你需要定义这样一个宏:
#define DOSOMETHING() foo1(); foo2();
这个宏的本意是,当调用DOSOMETHING()时,函数foo1()和foo2()都会被调用。但是如果你在调用的时候这么写:
if(a>0)
DOSOMETHING();
因为宏在预处理的时候会直接被展开,你实际上写的代码是
转载
2021-08-06 09:35:00
148阅读
while (n-- > 0) 的用法今天下午做题时遇到了,写篇文章记录一下while(n- - > 0) 使用后缀递减运算符,它的意思是循环n次,除了最常用的 for (int i = 0; i < n; ++i) {...} 之外,还可以写 while (n- - > 0) {...} 和 while (- -n >= 0) {...}。
原创
2022-07-04 08:54:44
1029阅读
在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。
1. do...while(0)消除goto语句。通常,如果在一个函数中开始
原创
2021-08-11 10:21:32
102阅读
在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句
转载
精选
2011-11-30 20:28:49
676阅读
在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句。通常,如
转载
精选
2013-12-01 21:29:28
447阅读
在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句。通常,如果在
转载
2021-09-16 10:54:37
83阅读