Linus 在内核编码风格文档中的含义是什么?

Linus 在内核编码风格文档中的含义是什么?

我正在读Linux 内核编码风格,Linus 写了这样的内容(第一章缩进):

不要将多个语句放在一行上,除非您有什么要隐藏的:

if (condition) do_this;
  do_something_everytime;

......

除了注释、文档之外,除了 Kconfig 之外,空格永远不会用于缩进,并且上面的示例是故意破坏的。

  1. 他说的是什么意思something to hide?这是讽刺吗?因为我看不到这种格式的任何编码点,更不用说hide something.

  2. 还有一个问题,什么是

    上面的例子是故意破坏的。

    意思是?是不是意味着

    上面的例子是故意打破这个(没有空格)规则的。

谢谢 : )

答案1

  1. 这种编码风格很容易误解代码的用途。在示例中,由于缩进并且在同一行中有另一个语句,人们可能会错误地认为该语句do_something_everytime在块中,并且仅当为 trueif时才执行。condition相反,该if块仅包含do_this并且do_something_everytime始终运行。

    这种“恶意”缩进过去曾导致软件出现错误,例如苹果公司的一个著名错误TLS 证书验证影响 Safari 以及可能的其他 Apple 软件。

  2. 该示例还违反了解释中明确指出的无空格规则。

相关内容