gpt4 book ai didi

c++ - C - 做{..} while(0);是否可以从代码中删除,不包括嵌套用法?

转载 作者:太空宇宙 更新时间:2023-11-04 05:20:37 26 4
gpt4 key购买 nike

做{...} while(0);

在我的编码中使用 do{}while(0); 是因为我不想使用长 if else 嵌套条件语句。我最终会在失败时中断并退出循环,并确保我的函数至少会被遍历 1 次。

现在,问题出在代码警告工具上,我在使用 do{...}while(0);

时收到警告

嵌套 if(){}else{} 的使用可读性较差,非常复杂。并让代码成为死代码。

如果我排除 nested if(){} else{}do{} while(0); ,我们是否留下了一些其他方式来编写代码具有可理解的逻辑可读性;

if(status_of_funcA_ok != funcA())
{ //failure}
else if (status_of_funcB_ok != funcB())
{//failure}
else if (status_of_funcC_ok != funcC())
else
{//Great}

do{
if(status_of_funcA_ok != funcA())
break;
if (status_of_funcB_ok != funcB())
break;
if (status_of_funcC_ok != funcC())
break;

}while(0);

最佳答案

do while{0} 循环的完整逻辑移至函数,并将 break 替换为 return。并调用函数,而不是循环。

  1. 您不必担心美丽。
  2. 编译器也不必提示 do while{0}

此外,通过添加一些模块化,程序可能会更具可读性。

无论如何,在执行此操作之前,最好检查一下您的编译器是否处于极端迂腐 模式,并且您可能希望将其关闭。这可能会消除警告。

SS.

PS:您似乎不需要该函数的返回值,但您可以通过它来了解哪个函数是成功的。

关于c++ - C - 做{..} while(0);是否可以从代码中删除,不包括嵌套用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11425872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com