版块
论坛
喜欢
话题
应用
搜索
登录
注册
archim的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=7386
do {...} while(0) 这样的代码有什么用?
linux sources里面有好些代码是写成do{...}while(0)这样的形式的。这样写有什么用意呢?和直接写{}里面的语句相比有什么区别呢?
回复
(
11
)
2003-05-06 11:10
来自版块 -
LINUX&UNIX核心开发
◆
◆
表情
告诉我的粉丝
提 交
archim
:
所以我现在养成了习惯 不管if else后面是一条还是N条语句 都用{}括起来
(2003-05-27 09:08)
回复
zhanghuhu
:
哦 原来 if (a) { if (...)dosomething; }; else somecode; 是错误的 这样的代码会有语法错误,还比较容易查出,如果整段代码放到一个不到else的if语句中,又没有用花括弧括起来,那错误就更隐蔽了。 ...
(2003-05-26 20:20)
回复
fly_fly
:
哦 原来 if (a) { if (...)dosomething; }; else somecode; 是错误的
(2003-05-26 18:46)
回复
Tomgin
:
大家有没有见到不在 宏里的 do{}while(0)
(2003-05-20 13:06)
回复
linzhu
:
hometown说的对,为了避免宏扩展时“;”带来的二义性,所以使用do { } while(0) 结构
(2003-05-17 18:16)
回复
brucezh
:
#define MACRO if(...) dosomething ... if (a) MACRO; else somecode; 展开: if (a) if (...)dosomething; else somecode; ...
(2003-05-16 14:39)
回复
longge
:
一般在宏里使用, 可以避免在宏扩展的时候出现二义性 这位老兄说的对,一般在定义复杂宏时用的!
(2003-05-08 14:06)
回复
Tomgin
:
有许多分支结构的程序用 if else 写很不清晰, do while 加 break 能很好实现不满足条件时不执行后面的代码 应该是实现多分支结构的技巧吧
(2003-05-08 13:05)
回复
archim
:
原来如此
(2003-05-06 15:19)
回复
hometown
:
一般在宏里使用, 可以避免在宏扩展的时候出现二义性
(2003-05-06 14:49)
回复
1
2
下一页 »
archim
加关注
写私信
0
关注
0
粉丝
67
帖子
返回顶部