什么是函数调用?C语言

什么是函数调用?C语言,第1张

通常在C语言中,一个完整的项目程序是不可能在一个函数中实现所有的功能。而是由若干功能不同的函数来实现,并且函数之间会存在互相调用的情况。

函数是C语言的基本组成元素,如果你要想实现函数的功能,那么你就必须学会正确调用函数。当我们调用一个函数时,需要明确函数名和实参列表。实参列表中的参数可以是常量、变量、表达式或者空,并且各参数之间要使用英文逗号分隔开来。

在数学运算中,会遇到计算多个连续自然数之间的和的情况。例如要计算1~n之间自然数之和,就需要先计算1加2的结果,用这个结果加3再得到一个结果,用新得到的结果加4,以此类推,直到用1~(n-1)之间所有数的和加薯明李n。

在程序开发中,要想完成上述功能,就需要使用函数的递归调用,所谓的递归调用就是函数内部调用自身的过程。需要注意的是,递归必须要求有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。接下来通过一个计算自然数之槐罩和的案例来学习递归调用。

扩数迟展资料

在C++中,为了允许 *** 作符重载和函数重载,C++编译器往往按照某种规则改写每一个入口点的符号名,以便允许同一个名字(具有不同的参数类型或者是不同的作用域)有多个用法,而不会打破现有的基于C的链接器。

这项技术通常被称为名称改编(Name Mangling)或者名称修饰(Name Decoration)。许多C++编译器厂商选择了自己的名称修饰方案。

调用函数就是计算机编译或运行时,使用某个函数来完成相关命令。对无参函数陵禅型调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其尺猜它构造类型数据及表达式。各实参之间用逗号分隔。

在程序中通过对函数的调用来执行函数体,其过程与其它语言的子程序调用相似。

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

函数名(实际参数表)

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

如果在设圆正计c语言程序中,反复要用到一个组合计算的程序段,比如:

void main()

{

int a,b,c,x,y,z,j,k,l

...

c=a+bc-=(a-b)/2//计算c=(a+b)-(a-b)/2

...

z=x+yz-=(x-y)/2//计算z=(x+y)-(x-y)/2

...

l=j+kl-=(j-k)/2//计算l=(j+k)-(j-k)/2

...

}

由于它们的计算公式相同,就采用一个函数来替代相樱腔郑似的语句:

int fun(int a,int b) { int cc=a+bc-=(a-b)/2return c} //按照公式计算并返回结果

这样程序就变成了:

int fun(int a,int b) { int cc=a+bc-=(a-b)/2return c}

void main()

{

int a,b,c,x,y,z,j,k,l

...

c=fun(a,b)

...

z=fun(x,y)

...

l=fun(j,k)

...

}

*这样的效脊颂果是:重复利用了函数的代码,节省程序的代码量(尤其是计算公式很复杂的情况更突出),程序简洁易读,便于统一修改计算公式和方法。

*还有一个优点就是:你调用函数时,无须知道算法的细节,按照函数调用规则就可以使用了,比如,标准c提供的函数double sin(double x),你只要知道这是个计算正弦函数值的函数即可,拿来可用而不必去看具体标准函数库是怎样计算的。

*你的函数如果写得正确、经典的话,完全可以封装成标准函数拿给其他人使用,甚至可以不提供源代码就可以。

*没有返回值的函数又可以叫子程序


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12457507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存