前天遇到这样一个问题,在debug目录新建一个空白的文本文件1.txt、2.txt,将代码简化一下:
1、获取Exe路径
2、判断新文件str11.txt、str22.txt是否删除成功:
3、编译器的优化
if(::DeleteFile(str1) ||
::DeleteFile(str2))
{
MessageBox("复制成功!");
}
理论上是要依次判断str11.txt、str22.txt是否删除成功,而编译器在处理类似语句时会直接优化。比如此时“||”前面语句如果为真,编译器就不会再看后面删除str2的表达式了。(当时我的用意是,如果str1,str2中任意一个文件存在就删除)
这是我当时遇到的一个错误,后面在这里郁闷了!幸亏老狼提示是编译器的原因,它自动优化了......
顿时茅塞顿开......