小编cnn*_*cza的帖子

C多行宏问题:为什么不在多行宏定义中使用if(1){...}而不是do {...} while(0)

我想调用循环中的多行宏来打破/继续它.

如果我在多行宏定义中使用"do {...} while(0)",则break/continue仅对"do {...} while(0)"有效,而不是调用此宏的循环.所以我考虑在多宏定义中使用"if(1){...}".

#define EXIT_CIRCULATION() \
        if(1){ \
           break; \
        }

void func(){
    while(1){
       ...
       EXIT_CIRCULATION();
       ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但我怀疑在宏定义中使用"if(1){...}"是一种好方法,因为我在互联网上找不到任何例子.

谢谢!

c c++ gcc

2
推荐指数
1
解决办法
1491
查看次数

标签 统计

c ×1

c++ ×1

gcc ×1