
正文
c语言怎么启用副函数 c语言在函数里调用函数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言中如何调用一个函数的子函数?
要知道 C语言是由MAIN函数开始也由它结束。
每调用一次分函数,只要运行完毕后就会回到调用分函数的地方继续往后执行。
C语言主要靠函数调用和return在函数之间切换,很难做到在多层调用中直接返回主函数。虽然goto语句可以无条件跳转,但是必须在同一个函数中使用。
因此解决的方法也是用一个特殊的值作为需要返回的标志,然后在两层调用函数中都遇到该值就返回,但是这个方法也有两个前提:
1)你的两个子函数都是由返回值的函数
2)你选择的特殊值和函数正常的返回的取值不会冲突,不会引起二义性。
同样的操作,C++可以通过异常处理的throw和catch来实现从子函数的子函数直接返回主函数,汇编语言可以用jmp指令跳转实现这个需求。因此建议你的这个问题还是用C++ 的异常去解决比较好。
相关问答
Q1: 如何在一个C语言程序中设置两个函数
c语言中一个完整的函数由函数首部和函数体构成,而且定义函数时两者都是必不可少的。
函数定义的一般形式如下:
类型标识符
函数名(形参表列)
//
这是函数首部
//
以下{
}内的是函数体
{
说明部分
执行部分
}
举例说明如下:
//
定义一个不带返回值的函数
//
函数功能:输出形参的值
void
fun(int
a,
int
b)
{
printf("%d,
%d\n",
a,
b);
}
//
定义一个带返回值的函数
//
函数功能:返回2个整数数的最大值
int
fun(int
a,
int
b)
{
return
ab
?
a
:
b;
}
Q2: C语言中怎么调用外部函数?
1、外部函数extern时声明这个函数为外部函数,本文件不做定义,只调用,编译不会出错,但不能运行(没有函数实体)。如果想有运行结果就必须将函数实体包含进来,所以文件包含和extern是配合使用的。文件包含只需要包含.h就是实体的头文件,但有些软件貌似不能识别头文件和c的关系,所以就只能包含.c文件。
2、也就是说外部函数extern只是个声明,他告诉编译器我用到了一个外部函数,但如果该文件没有将函数实体包含进来,编译器是找不到的,依然是不能运行的,所以extern只是个声明,并没有做任何事,只是这样是没用的。include是包含一个文件,就是类似于该文件复制到此处(只是说类似,其实是个查找路径,让编译器去该路径查找函数)。
Q3: c语言调用函数的问题 主函数输入姓名和学号 副函数浏览成绩 帮我改下程序 拜托了事后重酬
主函数,这个就是一个程序框架,其他的功能在子函数中实现
需要全局变量来存储这些学生的成绩和姓名,最好用结构体
main()
{
while(1)
{
liebiao();
printf("输入选择: ");
scanf("%d",i);
switch(i)
{
case 1:add();break;
case 2:list();break;
case 3:edit();break;
case 4:jisuan();break;
case 5:paixu();break;
case 0:exit(); //这个是系统函数,退出程序用的
}
}
}
其他功能用子函数来做,
所有的子函数最好在main前面写,这样就不用在main中声明了
Q4: C语言如何使用复合函数?大虾帮忙修改
void add1(int x,int y,int z)
{
int a,b,c,n;
a = x*x*x;
b = y*y*y;
c = z*z*z;
n = a+b+c;
}
/*
**add1中,x,y,z,a,b,c,n全部是局部变量,
**当函数add1运行结束,那么这些作用域是这个函数的所有局部变量的空间都将释放
**总的来说,你这个函数运行后,没有任何意义。
*/
int add2(int n)
{
add1();
printf("%d",n);
}
/*
**函数调用,要实参和形参个数一致性。
**所以调用时候应该写成add1(x,y,z);
**至于其他问题,还有……
*/
int main(int m,int n,int q)
{
scanf("%d%d%d",m,n,q);
add1(m,n,q);
getch();
return 0;
}
/*
**第一次见到这样的主函数,长见识了
**不过标准,就是遵循才有意义,
**建议遵循c99的标准。
**定义变量,不要放到主函数的参数内部了。
**有些东西约定是好了。
**至于其他问题,慢慢来,你才开始编写,不急。。。。
**函数分三步:定义,声明,调用,
**好习惯,慢慢养成!!!
*/
/*
**嵌套函数调用
*/
#include stdio.h
int Add1(int x,int y,int z)
{
int a,b,c,n;
a = x*x*x;
b = y*y*y;
c = z*z*z;
n = a+b+c;
return n;
}
int Add2(int Add2_x,int Add2_y,int Add2_z)
{
return Add1(Add2_x,Add2_y,Add2_z);
}
int main(void)
{
int m, n, q;
int Add1(int ,int ,int );
int Add2(int ,int ,int );
scanf("%d%d%d",m,n,q);
printf ("%d",Add2(m,n,q));
system ("pause");
return 0;
}
c语言怎么启用副函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言在函数里调用函数、c语言怎么启用副函数的信息别忘了在本站进行查找喔。







