方法很多.
另一种方法,把变量都转换成一种类型传递.这里用union共用体类型就比较适合.还方便扩展,如果想添加其他类型还可以在union里添加.
我这里代码就用第二种方法写.
#include stdio.h
typedef union data{
char c;
int i;
float f;
}DA;
void fun1(void);
int main()
{
fun1();
return 0;
}
void fun1(void)
switch(nType)
可以的.
C语言规定,任意函数均可以嵌套调用.所以子函数可以调用其它子函数,也可以调用自身.
如
int?func(int?a)
if(a?==?0)?return?0;
return?func(a-1)+a;
这样调用自身的称为递归调用.
又如:
int?fa(int?a)
return?a*a;
int?fb(int?a)
return?fa(a)+fa(a);
这就是不同函数调用的例子.
要知道 C语言是由MAIN函数开始也由它结束.
每调用一次分函数,只要运行完毕后就会回到调用分函数的地方继续往后执行.
C语言主要靠函数调用和return在函数之间切换,很难做到在多层调用中直接返回主函数.虽然goto语句可以无条件跳转,但是必须在同一个函数中使用.
所以呢解决的方法也是用一个特殊的值作为需要返回的标志,然后在两层调用函数中都遇到该值就返回,但是这个方法也有两个前提:
①.)你的两个子函数都是由返回值的函数
同样的操作,C++可以通过异常处理的throw和catch来实现从子函数的子函数直接返回主函数,汇编语言可以用jmp指令跳转实现这个需求.所以呢建议你的这个问题还是用C++ 的异常去解决比较好.
以上就是土嘎嘎小编为大家整理的c语言的子函数的调用相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!