像这种情况,用VS2013编译是完全正确的,连警告都没有,结果耽误了我很多时间找错误,但是像codeblocks会有警告提示,那有没有办法在VS2013里设置编译严格的程度呢?
if(ans1==a[i]) l1++; 这个方法不错,是个很好的习惯,可以采用。其次Visual Assist X的用法是你到网上搜vc++助手,下载下来之后安装就好了,里面有教你怎么破解。最后说一点,写程序要实时检查,可以额外加一些printf 将结果打印出来,那么就很快发现错误了
Visual Assist X这个插件有额外的代码检查。但是VC++编译器的确不会对使用=作为bool表达式做检查,而且这其实是很常用的做法,如果都警告也很烦人,比如
while (c = getchar())
{
...
}
这里用=很正常。
貌似没法设置的,语法方面还是要自己注意
这个可能得自己注意,语法错误,特别是=和==,大半部分的编译器都不会检测这类错误吧,因为这本身就是对的。。。
强烈建议你写if判断语句时反过来写,如:
if(ans1==a[i]) l1++;
这样当你写成:
if(a[i]=ans1) l1++;
时编译器就会报错了!
强烈建议你写if判断语句时反过来写,如:
if(ans1==a[i]) l1++;
这样当你写成:
if(ans1=a[i]) l1++;
时编译器就会报错了!
VS设置里有,这个你空了在VS的设置里找下,里面好像可以设检查的严格度,按说这种错要报错啊。。。我的VS都 会报错。。可能和你选的环境有关吧,
我是C#,里面严格限定类型的 IF里必须是bool类型