カーネルコーディングスタイルのドキュメントでは、Linusはどういう意味ですか? [閉鎖]

カーネルコーディングスタイルのドキュメントでは、Linusはどういう意味ですか? [閉鎖]

私が読んでいるLinuxカーネルコーディングスタイル、Linusは次のように書きました(1枚のインデント):

隠すことがない場合は、1行に複数の文を入れないでください。

if (condition) do_this;
  do_something_everytime;

...

コメント、ドキュメント、およびKconfigを除いて、インデントにスペースは使用されず、上記の例は意図的に壊れています。

  1. どういう意味ですかsomething to hide?これは皮肉ですか?この形式のエンコードポイントはもちろん見られないからですhide something

  2. 別の質問があります。

    上記の例は意図的に壊れています。

    意味は?それはどういう意味ですか?

    上記の例は、意図的にこの(空白なし)規則に違反しました。

ありがとう:)

答え1

  1. このようなコーディングスタイルは、コードの目的を誤解しやすい。この例では、インデントと同じ行に異なるステートメントがあるため、そのステートメントがdo_something_everytimeブロック内にあり、iftrueの場合にのみ実行されると誤って考えることができます。condition代わりにif、ブロックは含まれ、do_this常にdo_something_everytime実行されます。

    この「悪意のある」インデントは、過去にAppleの有名なソフトウェアなどのソフトウェアでバグを引き起こしました。TLS証明書の確認Safariやその他のAppleソフトウェアに影響を与える可能性があります。

  2. さらに、この例は、説明に明確に記載されている空白禁止規則に違反しています。

関連情報