最近的项目中,有一个BUG是将等号“==”写成赋值号“=”导致的。
无意中发现,这种情况,其实eclipse自带的语法检查可以发现,并且给出警告。但是仅限于一条条件语句,如:
if (a=b)
对于比较复杂的语句无法检查,例如:
if((a=b)&&(c=d))
当然,如果对于一条条件语句也没有提示,那么可能是代码的语法检查功能被修改过,可以手动改回来。
一次打开Window -> Preferences -> C/C++ -> Code Analysis
右边的“Potential programming problems”中列出了检查的项目,其中第一条“Assignment in condition”就是“可能在条件语句中赋值”的检查,勾选此项即可。
对于复杂的条件语句,可以运用一些技巧避免此类问题。例如,把常量写在等号前面。