私は、Linus Torvalds から正体不明の Elbonian コード スレーブまで、さまざまな品質/能力/正気のさまざまなソースからまとめられた大規模な SDK コードベースを使用しています。
コードにはさまざまなスタイルがあり、明らかに他のスタイルよりも優れているものもあり、別の手段で人類の未来に対する私の知識/絶望を拡大する興味深い機会を証明しています.
少し奇妙な(私にとって)スタイルを繰り返し使用する関数の山に出くわしました。
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);
どういうわけかより良く/きれいに/より直感的/読みやすいように見えます.
だから私は今、それを別の方法で行う(正当な)理由があるのか 、それともエルボニアのコードマインズで常に行われている方法なのか疑問に思っています.
編集:「重複の可能性がある」リンクによると、このコードはどのような種類のマクロでも前処理されておらず、通常のコードにあるだけです。この回答 に従って、エラーチェックに関するコーディングスタイルのルールが原因である可能性があると信じています。