首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-06-26 
关于在gcc环境下的函数返回值问题int n2(Bitree bt){if(btNULL){return 0}if((bt-lchildNULL)&&(bt-

关于在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的情况。。

热点排行