首页 > 编程知识 正文

c语言一个函数调用另一个函数,c++如何在一个函数中调用另一个函数

时间:2024-04-24 11:43:03 阅读:333645 作者:ICHY

本文目录一览:

C语言中能否在一个自定义函数中调用另一个自定义函数?

可以调用。

C语言最基本的模块为函数,任意函数都可以调用其它任意一个函数,包括函数本身。

1、自定义函数调用其它自定义函数的例子:

#include stdio.h

void fun1(int a)//自定义函数fun1。

{

printf("%dn",a);

}

void fun2(int m, int n)//自定义函数fun2。

{

fun1(m);

fun1(n);//调用两次另一个自定义函数。

}

int main()

{

fun2(2,3);//调用fun2.

}

在这个例子中,就是主函数调用自定义函数fun2,然后fun2调用另一个自定义函数fun1.

2、不仅可以调用其它自定义函数,还可以调用自己本身。

这种称为递归。

以下是通过递归,计算1+2+3+...+n值的代码:

#include stdio.h

int fun(int n)

{

if(n == 1) return 1;

return n+fun(n-1);//递归调用,返回和值。

}

int main()

{

printf("%dn", fun(100));//计算1到100的和值。

return 0;

}

C语言中一个子函数怎么调用另一个子函数的运算?

方法很多。

主要是要将不同类型传递给fun2处理。

最简单float类型最大,fun2的参数类型就定义为float,然后运算结果返回float类型。在main函数用a3,b3,c3接收的时候强转型。

另一种方法,把变量都转换成一种类型传递。这里用union共用体类型就比较适合。还方便扩展,如果想添加其他类型还可以在union里添加。

我这里代码就用第二种方法写。

#include stdio.h

typedef union data{

  char c;

  int i;

  float f;

}DA;

void fun1(void);

DA fun2(DA n1,DA n2,int nType);//nType=1:char类型。nType=2:int类型。nType=3:float类型。

int main()

{

  fun1();

  return 0;

}

void fun1(void)

{

  char a1=1,a2=2;

  int b1=100,b2=300;

  float c1=5.1,c2=6.8;

  DA n1,n2;

  n1.c=a1,n2.c=a2;

  char a3=fun2(n1,n2,1).c;

  n1.i=b1,n2.i=b2;

  int b3=fun2(n1,n2,2).i;

  n1.f=c1,n2.f=c2;

  float c3=fun2(n1,n2,3).f;

  printf("a3=%cnb3=%dnc3=%.2fn",a3,b3,c3);

}

DA fun2(DA n1,DA n2,int nType)//nType=1:char类型。nType=2:int类型。nType=3:float类型。

{

  DA n3;

  switch(nType)

  {

      case 1:n3.c=n1.c+n2.c;break;

      case 2:n3.i=n1.i+n2.i;break;

      case 3:n3.f=n1.f+n2.f;break;

  }

  return n3;

}

c语言在一个函数内部调用另一个函数的调用方法称为___?

在一个函数内部调用另一个函数的调用方式称为嵌套调用,嵌套调用就是某个函数调用另外一个函数(即函数嵌套允许在一个函数中调用另外一个函数)。

# 函数的嵌套调用:在一个函数内部调用另一个函数

def fn1():

pass

def fn2():

fn1()  # 函数的嵌套调用

def fn3():

fn2()  # 函数的嵌套调用

fn3()

扩展资料:

嵌套调用执行过程:

1、执行main函数的开头部分;

2、遇函数调用语句,调用函数a,流程转去a函数;

3、执行a函数的开头部分;

4、遇函数调用语句,调用函数b,流程转去函数b;

5、执行b函数,如果再无其他嵌套的函数,则完成b函数的全部操作;

6、返回到a函数中调用b函数的位置;

7、继续执行a函数中尚未执行的部分,直到a函数结束;

8、返回main函数中调用a函数的位置;

9、继续执行main函数的剩余部分直到结束。

参考资料来源:

百度百科-嵌套调用

C语言如何调用函数

C语言中,函数调用的一般形式为:

函数名(实际参数表)

对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。

#includestdio.h

int fun(int x, int y); // 函数声明,如果函数写在被调用处之前,可以不用声明

void main()

{

int a=1, b=2, c;

c = fun(a, b); // 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值

}

// 自定义函数fun

int fun(int x, int y)  // 函数首部

{  // {}中的语言为函数体

return xy ? x : y;  // 返回x和y中较大的一个数

}

扩展资料

C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。

这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。这与其它语言的子程序嵌套的情形是类似的。其关系可表示如图。

图表示了两层嵌套的情形。其执行过程是:执行main函数中调用a函数的语句时,即转去执行a函数,在a函数中调用b 函数时,又转去执行b函数,b函数执行完毕返回a函数的断点继续执行,a函数执行完毕返回main函数的断点继续执行。

参考资料:函数调用_百度百科

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。