Chinaunix
标题:
函数返回类型为std::string时 不返回就出错。为什么
[打印本页]
作者:
山外山
时间:
2008-05-07 23:18
标题:
函数返回类型为std::string时 不返回就出错。为什么
谢谢大家。如题:
#include <string>
using namespace std;
string foo()
{
; //这里不返回任何东西。为什么编译通过但是运行会出错?build-in type 如int就没有这个问题。为什么
}
int main()
{
foo();
}
作者:
converse
时间:
2008-05-07 23:19
LZ先说说看为什么你觉得没错吧....
作者:
山外山
时间:
2008-05-07 23:27
我知道标准来说是要返回的。但是实际上不返回是乎也只是一个warning吧
作者:
caijimin
时间:
2008-05-08 08:43
个人意见,可能把eax当作返回值了,但eax不是string, 当作int则没有问题
作者:
ideawu
时间:
2008-05-08 11:18
这和编译器的实现有关, 我用gcc3.4.4测试, 无论函数返回值类型是int还是string, 编译都通过且运行没有错误. 如果使用vc6.0, 则无法编译通过.
楼主用的是不是gcc? 版本是多少? 可以看下面的链接:
http://gcc.gnu.org/ml/gcc-patches/2000-10/msg00115.html
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2