前天改程序过程中发现的,觉得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)
这么一句应该算不上有意义的语句吧?!