我正在使用一个庞大的 SDK 代码库,这些代码库从不同质量/能力/理智的各种来源汇聚在一起,从 Linus Torvalds 到身份不明的 Elbonian 代码奴隶。
有各种各样的代码风格,有些明显优于其他风格,这证明了一个有趣的机会,可以扩展我的知识/对人类未来的绝望以替代措施。
我刚刚遇到一堆函数,它们反复使用(对我来说)有点奇怪的风格,即:
void do_thing(foo)
{
do {
if(this_works(foo) != success)
break;
return(yeah_cool);
} while (0);
return(failure_shame_death);
}
这段代码没有做任何复杂的事情(我没有为这篇文章删减 10,000 行魔法),他们可以很容易地做到:
if(this_works(foo) == success)
return(yeah_cool);
else
return(failure_shame_death);
这看起来会更好/更整洁/更直观/更容易阅读。
所以我现在想知道是否有一些(好的)理由以另一种方式这样做,或者这只是他们在 Elbonian Code Mines 中总是这样做的方式?
编辑:根据“可能重复”链接,此代码未在任何类型的宏中进行预处理,它只是在普通代码中。我可以相信这可能是由于关于错误检查的编码风格规则,根据这个答案。