如果我做了像
这样的事情,VS2010 C ++中有没有办法让IDE抱怨if (somevar = 2)
{
...
我试着注意写==而不是=,但不仅使用C ++而且还使用VB和其他语言,它有时会发生。
有时需要花很多时间才能找到与我的错相关的错误。
我认为人们真正想写一个if语句同时为变量分配一个新值(如上例所示)的可能性相当小。这就是为什么我希望VS2010可能包含一个选项,告诉我可能的缺陷,但我还没找到。
有这样的选择吗?
答案 0 :(得分:6)
是的,有:
warning C4706: assignment within conditional expression
只需确保打开所有(不是完全在MSVS上)警告。 (project properties -> C/C++ -> General -> Warning Level
)
替代方案是使用YODA条件(2 == somevar
),但这很难看。 :)
答案 1 :(得分:0)
在解决方案资源管理器中右键单击项目名称,选择属性,转到配置属性| C / C ++ |一般,并将警告级别设置为级别4 。您不会收到错误但会收到警告:
警告C4706:条件表达式中的赋值