这里虚空的目的是什么?

时间:2017-07-27 21:23:28

标签: c++

我一直在查看journalctl代码并遇到了以下代码块。

如果在测试条件时存在非零结果,这似乎是退出一系列条件测试的简便方法。非常聪明。

但我不确定HashSet演员的目的。它是否抑制一些编译器输出?即使使用void-Wall,g ++也不关心。

-pedantic -pedantic-errors

1 个答案:

答案 0 :(得分:5)

  1. 禁止编译器警告此逻辑表达式的未使用结果。该logiocal或表达式是为其副作用及其短路评估特性而构建的。该代码的作者并不关心它的最终结果。编译器可能不够聪明,无法实现。它可能会警告最终结果被丢弃。
  2. 向读者传达代码作者放弃逻辑表达结果的意图。
  3. 明确转换为void是一种普遍接受的习惯用语,它传达了这种意图(对编译器和人类读者而言)。

    P.S。 ||的这个应用程序是“经典”C风格表达式编程中的分支的一个例子,正如我在这里描述的那样:https://stackoverflow.com/a/1618867/187690