读书人

关于在gcc环境下的函数返回值有关问题

发布时间: 2013-06-26 14:29:32 作者: rapoo

关于在gcc环境下的函数返回值问题
int n2(Bitree bt)
{
if(bt==NULL)
{
return 0;
}
if((bt->lchild==NULL)&&(bt->rchild==NULL))
{
return 0;
}
if((bt->lchild!=NULL)&&(bt->rchild==NULL))
{
return n2(bt->lchild);
}
if((bt->lchild==NULL)&&(bt->rchild!=NULL))
{
return n2(bt->rchild);
}
if((bt->lchild!=NULL)&&(bt->rchild!=NULL))
{
return n2(bt->lchild)+n2(bt->rchild)+1;
}
}

提示warning: 'return' with no value, in function returning non-void,也就是最后一行有问题,提示没返回值吗? 我的这个函数中不是有多个返回值吗? 怎么还会提示没有返回值? 而且我在VC下就没有提示warning。 这个要怎么解决。 GCC 函数 返回值
[解决办法]
在最后一个大括号前, 加一个 return 0; 就好了。
[解决办法]

return -1;//最后指定个返回表示有未处理的情况

[解决办法]
引用:
int n2(Bitree bt)
{
if(bt==NULL)
{
return 0;
}
if((bt->lchild==NULL)&&(bt->rchild==NULL))
{
return 0;
}
if((bt->lchild!=NULL)&&(bt->rchild==NULL))
{
return n2(bt->lchild);
}
if((bt->lchild==NULL)&&(bt->rchild!=NULL))
{
return n2(bt->rchild);
}
if((bt->lchild!=NULL)&&(bt->rchild!=NULL))
{
return n2(bt->lchild)+n2(bt->rchild)+1;
}
}

提示warning: 'return' with no value, in function returning non-void,也就是最后一行有问题,提示没返回值吗? 我的这个函数中不是有多个返回值吗? 怎么还会提示没有返回值? 而且我在VC下就没有提示warning。 这个要怎么解决。


如果条件都不满足呢
[解决办法]
最后那里要加个return。。如果前边的if都没有return的情况。。

读书人网 >C语言

热点推荐