C语言中如果函数定义为了void 类型能不能用return返回值

如:
void equal(int x,int y)
{
return(x==y);
}
这样可以吗 是不是会错????

return的功能是终止一个函数
函数类型是void类型,也是可以加return的
但是其后面不能加任何数值 表示函数到此为止

# include "stdio.h"
void main(void)
{
printf("这是return之前的语句\n");
return;
printf("这是return之后的语句\n");
}
/*
在vc++6.0中的输出结果:
------------------------
这是return之前的语句
Press any key to continue
------------------------------
*/
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-14
viod会告诉函数不返回任何值,也就是说你声明了一个函数是不需要返回值的,但是你又return 了一个值,这样就会矛盾了。在上面那个自定义函数中,楼主可以把void换成 int,也就是让函数返回一个整形,或者楼主不愿意改void的话可以在函数中用printf来替换return.
楼主应该是刚开始学习c语言,在这里说一下,只要能够坚持下去,c语言一定能够学好的追问

但是我如果想从函数中出来可以写return吧
如:
void XX()
{
----------;
---------;

if()
return;

------------;
}

追答

如果楼主想从函数中跳出来,return 是可以的,为什么楼主声明了函数返回值是void这次却能用return,而上面那个不能呢,因为你上面那个返回了值,也就是return(x==y);,下面这个return没有返回任何值,在没有返回任何值的情况下,return有结束当前函数的功能。不知道这样说楼主能不能理解。
当然扩展一下:除了能用return;来表示跳出当前函数之外exit()也是可以的。
如果想从do-while、for、while循环语句中跳出来可以使用break函数。

追问

但是我如果想从函数中出来写return 1 带了值这样可以吗?

void XX()
{
----------;
---------;

if()
return 1;

------------;
}

第2个回答  2012-11-14
可以有返回语句,这样写:return;但不能返回任何值。 x==y这个表达式是有值的,为1或0;
第3个回答  2012-11-14
不对,void 指的就是返回类型为空,不能有返回值,如果你就是想返回的话把void 变成bool
第4个回答  2012-11-14
void类型无返回值,如果返回会报错,你可以将void改为int。
相似回答