私が読んでいるLinuxカーネルコーディングスタイル、Linusは次のように書きました(1枚のインデント):
隠すことがない場合は、1行に複数の文を入れないでください。
if (condition) do_this; do_something_everytime;
...
コメント、ドキュメント、およびKconfigを除いて、インデントにスペースは使用されず、上記の例は意図的に壊れています。
どういう意味ですか
something to hide
?これは皮肉ですか?この形式のエンコードポイントはもちろん見られないからですhide something
。別の質問があります。
上記の例は意図的に壊れています。
意味は?それはどういう意味ですか?
上記の例は、意図的にこの(空白なし)規則に違反しました。
ありがとう:)
答え1
このようなコーディングスタイルは、コードの目的を誤解しやすい。この例では、インデントと同じ行に異なるステートメントがあるため、そのステートメントが
do_something_everytime
ブロック内にあり、if
trueの場合にのみ実行されると誤って考えることができます。condition
代わりにif
、ブロックは含まれ、do_this
常にdo_something_everytime
実行されます。この「悪意のある」インデントは、過去にAppleの有名なソフトウェアなどのソフトウェアでバグを引き起こしました。TLS証明書の確認Safariやその他のAppleソフトウェアに影響を与える可能性があります。
さらに、この例は、説明に明確に記載されている空白禁止規則に違反しています。