深入理解php内核阅读1
admin
2023-06-26 00:00:02
0

 do{ }while(0)使用的解释


 do{ }while(0)写法的目的主要是为了程序基础函数的健壮性和通用性,和一些代码的灵活使用。

 do{ }while(0)写法会让内部的代码执行一次后退出,如果不使用这种写法,会对那些如if语句后面不紧跟{}的程序员造成编译错误,而对那些使用{}编程习惯的则无影响。

举例:

#define SAFE_DELETE(p) do{ delete p; p = NULL} while(0)  //1.使用 do{ }while(0)写法

#define SAFE_DELETE(p)  { delete p; p = NULL} //2.使用{}写法

#define SAFE_DELETE(p)  delete p; p = NULL  //3.什么都不使用的写法


if(NULL != p) SAFE_DELETE(p)     //1.无问题 2.无问题 3.有问题,else前面有2条句,编译失败
else   ...do sth...


if(NULL != p) SAFE_DELETE(p);     //1.无问题 2.有问题,括号后面跟;编译失败 3.有问题,else前面有2条       else   ...do sth...                                 //句,编译失败


if(NULL != p) {SAFE_DELETE(p)}     //1.无问题 2.无问题 3.无问题
else   ...do sth...

相关内容

热门资讯

伊朗撂下3句狠话 网络上的P图,看看挺有意思的世间万千博弈,最耗心神的,从来不是立场分歧,而是态度的反复无常。这也是现...
普京:亚美尼亚若入欧盟,得先算... 新华社阿斯塔纳/莫斯科5月29日电(记者张继业 许炜凯) 俄罗斯总统普京29日表示,亚美尼亚在欧盟和...
伊朗军方在格什姆岛附近击落敌对... 总台记者当地时间5月29日晚自伊朗方面获悉,伊朗陆军防空部队在监测到敌方小型无人机后,在格什姆岛附近...
联合国安理会延长对南苏丹武器禁... △当地时间5月29日,安理会成员国在就南苏丹制裁授权延期决议草案进行表决。当地时间5月29日,联合国...
字节Seed AI4S或考虑分... 来源:市场资讯 (来源:三言科技) 5月29日,据Z Finance,字节Seed旗下AI4S团队正...
刷新在轨驻留最长纪录!神二十一... 自2025年11月1日进驻空间站以来,神舟二十一号乘组在轨驻留了约7个月,刷新中国航天员乘组在轨驻留...
广东荔枝迎采收季,无人机单机日... 5月底,岭南荔枝进入采收与上市关键期。南都湾财社记者获悉,以大疆为代表的农业无人机正大规模替代传统人...
伊媒:特朗普关于伊美协议的说法... 新华社德黑兰5月29日电 伊朗法尔斯通讯社29日以一名伊方知情人士为消息源,反驳美国总统特朗普关于美...
电视为什么一直闪屏 由于电源电压不稳定或电源供电不足的缘故、电视分辨率的故障、电视存在周围有电磁干扰的缘故、电视的刷新频...
专访塞尔维亚总统武契奇 塞尔维亚总统武契奇首次对中国进行国事访问,接受《高端访谈》专访。他说,这是他政治生涯中最重要的一次访...