DLException TestBll::drugYaoMingAnalyzer(QString cardNo){
//do someting
//no return
}
DLException TestBll::naturalResistAnalyzer(QString cardNo){
DLException ret;
//do someting
return ret;
}
void call(){
drugYaoMingAnalyzer("123");
naturalResistAnalyzer("123");
}
当我运行call时,程序奔溃。 当我把naturalResistAnalyzer注释后,运行正常。调试模式下每次奔溃的地方不一样。在遍历逻辑代码无果后。偶然看到:
试着写上返回值后,一切正常了。推论:上一个函数没有返回值在某种情况下会把下个函数的某个内存值给改写了。
- 由此,写代码一定要小心。多看看警告信息(调试这个问题花了我一个上午)。