辅助定义复杂的宏
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(0)
或者
while(1)
a(args);b(); 这不是我们想要的,因为第二个b();不会被执行。
代替goto语句,代码流程比较好。int foo(){ somestruct* ptr = malloc(...); do{ dosomething...; if(error) { break; } dosomething...; if(error) { break; //goto free(ptr); } dosomething...; }while(0); free(ptr); return 0; }
避免空宏引起的waring
#define B do{ } while(0);
do{ ...}while(0)应用技巧
精选 转载文章标签 c++ do{ }while(0) 文章分类 C/C++ 后端开发
下一篇:c++ 注释
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
do{...}while(0)的意义和用法
do{...}while(0)的意义和用法
do{...}while(0) -
C++ do{...}while(0)的好处#define 宏定义 作用域 编译优化 变量名