c++ - 可能错误使用赋值运算符代替比较运算符的地方 , = Vs ==

标签 c++ compiler-errors compilation compiler-warnings

<分区>

我正在做一个 C++ 编译器项目,我需要在可能错误使用赋值运算符而不是比较运算符的地方标记警告。 。例如 在 if 语句中进行比较时,检查变量 a 是否为 10 有时我们错误地输入 if(a= 10),这将导致 if 语句始终为 true 而我只想在 a 时为真>10。我能想到的一些情况是:

  1. if(var = a),按道理应该是if(var==a)
  2. while(var = a )
  3. for(;var=a;)
  4. 做{}while(var=a)
  5. var=a? “一些 XYZ”:“一些 ABC”

你能帮我解决更多可能发生这种逻辑错误的情况吗?用户应该使用 == 而错误地使用了 = ?/p>

最佳答案

我最近遇到的一个讨厌的问题是 assert (a=b)。如此特别讨厌的原因是因为断言中陈述的假设是两者已经相等,所以该陈述很可能是无害的。但如果它们不是,这会让您进入一个讨厌的调试 session ,因为调试构建在功能上不同于发布构建。

关于c++ - 可能错误使用赋值运算符代替比较运算符的地方 , = Vs ==,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47453088/

相关文章:

c++ - 如何在多个 Catch2 测试用例中检查相同的条件

c++ - C++ 中的多态加号?

c++ - 迭代 vector 时跳过行

代码块中的 C++11 编译问题

Java编译器已完成但未创建可执行文件?

c++ - 使用常量设置变量类型

actionscript-3 - 如何使用ASC2.0修复Error “A conflict exists with definition * in namespace public.”?

c# - 数组C#错误Unity3D

编译一个简单的C程序以使用Pixie进行渲染(开源renderman)

opencv - Yocto构建中OpenCV中的Gsteamer冲突声明