您的位置:首页 > 其它

发现VC有个错误检查不出来

2012-10-31 16:09 721 查看
前天改程序过程中发现的,觉得VC6老兄有点坑爹了:)  折腾大半天才发现在哪里晕菜了!

代码我就简化了,其余无关的就省略掉,直击主题吧!

原来代码是这样:

int GetValue(int key)
{
......
}

void CTestDlg::OnButton1()
{
if (GetValue(25) > 0)
{
......
}
......
}

接着想给GetValue多加一个参数,默认值为空字符串,调用的地方随手改了一下,结果变成这样了:

int GetValue(int key, CString name = "")
{
......
}

void CTestDlg::OnButton1()
{
if (GetValue(25), "guggy" > 0)
{
......
}
......
}

顺利编译通过,执行,结果大跌眼镜。上看下看没看出代码有什么问题,单步调试吧。发现有点奇怪,为什么传到GetValue里的name是空,而不是"guggy"呢?

Rebuild all后再试,问题依然!晕了

首先说明是我自己犯晕才出的这个问题,但觉得VC6应该比我清醒,最起码给个警告啊 对吧老兄!

if(GetValue(25), "guggy"  > 0)

这么一句应该算不上有意义的语句吧?!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: