C语言中怎样从被调函数中返回到调用函数

void a()
{
……
}
void b()
{
a();
}

void c()
{
a();
}
如果想从a返回到调用它的函数(不知道是b还是c),怎样才能做到
void a()
{
……
switch(a)
{
case 1:
{
printf("返回上一步");
?//怎样回去
}

case 2:
{
………………
}
default:
{
printf("输入错误,重新输入");
a();
}
}
}
a的函数应该是这样的

1、return后接一个值,就可以实现返回。在调用这个函数的函数里面,调用它的时候希望获得一个值,如果不希望获得这个值的时候,用void声明就好。
2、例如:
int func()
在调用它的比如main里面
func()的作用就可以相当于一个int型常数
比如外面定义了
int max(int a,int b)
{
return a>b?a:b;
}
主函数里面是
main()
{
int A;
A=max(1,2);
}
这时候就是通过max计算 1>2 则return 一个1 ,1<2 则return一个2。很明显1<2 所以这里max(1,2)就会return 一个 2
这时候主函数里的max(1,2)就相当于一个常数 2
A=max(1,2)的作用就相当于A=2
这个意思。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-26
a返回到调用它的函数,既然a都返回了,那就是a结束了啊,a结束了,自然就返回到你调用a的那个位置了。
还是说你想在a中调用b或者调用c?劝你不要这样做,很容易造成死循环。

要结束这个switch,就用break;
要结束这个函数,就用 return;
要结束这个程序,就用exit(0);追问

a函数应该是新增注释那样的,开始的时候写少了

追答

你要在注释的那个地方结束a返回到调用位置,那样就用return;就行了。

本回答被提问者和网友采纳
第2个回答  2013-06-22
返回值为 void 的函数返回有两种方式 : 1. return 2. 执行完函数块(到达下一个大括号)
。。。 其他类型的函数返回有一种 : return + 与返回类型相对应的常量或变量。

程序按顺序执行不可能同时被 a b 调用。追问

a函数应该是新增注释那样的,开始的时候写少了

追答

我写了。用return语句。

第3个回答  2013-06-22
看看下面这个也许有帮助

#include<stdio.h>
void a();
void b();
void c();
void main(void)
{
printf("*********调用a函数*********\n");
a();
printf("*********调用b函数*********\n");
b();
printf("*********调用c函数*********\n");
c();
}
void a()
{
printf("现在执行的是a 函数\n");
printf("a函数执行完成\n");
}
void b()
{
printf("现在执行的是b 函数\n");
printf("我要在b函数中执行一次c\n");
c();
printf("执行完c他会返回b\n");
printf("B函数执行完成\n");
}
void c()
{
printf("现在执行的是c 函数\n");
printf("我又在C函数中执行一次a\n");
a();
printf("执行完a他返回了c\n");
printf("C函数执行完成\n");
}

如果半路想返回只能用return,但是没有返回值不能确定是从哪一步返回的,
如果定义的是int a(),可以返回一个整型数值,用来检查是从哪一步返回的,

不过看你的意思不是想返回什么,面是想调用才是,当我使用a函数的时候,他只能返回他的父函数,不可能跨越自已的父函数返回的,也许是我见识太浅了,这个真没听说过
第4个回答  2013-06-22
void a()
{
……
switch(a)
{
case 1:
{
printf("返回上一步");
?//怎样回去 //这里加一个return
}

case 2:
{
………………
}
default:
{
printf("输入错误,重新输入");
a();
}
}
}

C基生物写的那个函数可以借用一下,能知道执行的是哪个函数。
相似回答