在函数体的 “出口处” ,对return语句的正确性和效率进行检查
注意事项如下:
(1) return 语句不可返回指向“栈内存”的“指针”或者“引用”(即函数的局部变量),因为该内存在函数体结束时被自动销毁
[cpp] view plaincopy
- char * Func(void)
- {
- char str[] = “hello world”; // str 的内存位于栈上
- return str; // 将导致错误
- }
(3) 如果函数返回值是一个对象,要考虑return 语句的效率。
[cpp] view plaincopy
- return String(s1 + s2);
- //直接创建一个临时对象并返回它
- //效率比较高
- String temp(s1 + s2);
- return temp;
- //先创建一个局部对象temp,之后使用一个临时对象接收它,最终返回它的结果
- //效率低下