声明有返回值的函数必须return吗???
如果一个函数声明如下:
int funca(int i)
{
return i;
}
毫无疑问是必须显示的return返回,并带一个int类的值
但是如果函数为
int* funcb(int i)呢??
如果
int* funcb(int i)
{}
这样编译器会报错,必须要返回一个int*
然而如果这样
int* funcb(int i)
{
if(i > 0)
{
return new int(0);
}
}
编译居然可以通过了,为什么,如果我的i<0,那么我什么都没有return啊
跟踪汇编代码也没有发现这条路径上有任何的设置eax的动作,搞不懂啊