什么是函数调用?C语言

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

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

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

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

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

扩展资料

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

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

函数调用过程如下:

参数入栈

执行流转到函数开始地址

执行函数

函数执行完毕,返回。

平衡堆栈

大致是这样,根据调用约定不同,可能会有稍许差别。

  1、打开CFree,按ctrl加N创建一个新的文件。

 2、然后开始调用函数。

 3、按F9进行调试后发现没有错误。

 4、按F5执行程序。

 5、输入想要输入的数字。

 6、按ENTER键输出结果,检验符合结果,说明函数调用成功。

先说6,7,8怎么来的,

static int j=5;

i=j+=1; -> i=++j;

return i;

显然第一次是6,而j又是静态局部变量,所以再次调用的时候保持j的值,j在上次调用后变为6,所以第二次调用的时候6+1=7;

f3c的参数i是外部变量,用的就是f1c中的i=1,而other函数中的i也是1,它是other函数返回值赋给i的值。

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

原文地址: http://outofmemory.cn/langs/12183714.html

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

发表评论

登录后才能评论

评论列表(0条)

保存