c++ - 当短路评估可能导致函数未被调用时,是否有 gcc 警告标志?

标签 c++ c gcc

例如,在代码中:

bool foo = bar || baz();

函数 baz() 可能不会被调用。我发现这对我来说是一个常见的错误来源,我想知道 GCC 是否有办法打印警告。

最佳答案

这个没有警告标志,它会为太多常见条件生成警告 (if(condition) bar();, if(foo && foo->bar ) baz(); 等)。

相反,做类似的事情:

bool foo = baz() || bar;

或者这个:

bool foo = bar | baz();

这些无条件调用baz()

关于c++ - 当短路评估可能导致函数未被调用时,是否有 gcc 警告标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58052516/

相关文章:

c++ - boost::char_separator 的默认字符分隔符是什么(用于 boost::tokenizer)?

c++ - 如何创建一个新的字符串数组

c++ - 是否可以为不同的 block 静态分配不同的共享内存?

c - 编译 CUDA 时出错

c++ - 在 native C++ 类中缓存字符串长度的后果?

c++ - 使用模板准确地克隆类类型?

使用指针创建结构

c - 某些函数中修改的结构会更改指针并导致 free() 失败

c++ - 在自动函数中放置 gcc 函数属性的位置

c - 使用相同代码的 clang 和 gcc 之间的不同结果