函数调用过程如下:
参数入栈
执行流转到函数开始地址
执行函数
函数执行完毕,返回。
平衡堆栈
大致是这样,根据调用约定不同,可能会有稍许差别。
您好,很高兴回答您的问题。c语言中,程序运行的时候,首先是找到主函数来运行,其他的函数只有在被调用的时候才会运行。所以对于您给定的程序,系统找到主函数运行,函数体的第一句话是对被调用的函数进行申明,然后定义n为整型变量,s为双精度实行变量,并赋初始值为0。接下来从键盘输入n的值,然后用n和s作为实参,调用fun函数,那么程序就会转到fun函数中运行。定义变量i,然后运行循环语句,i从1到n,对每一个i进行判断,若i能整除5或者能整除9,那么就把1.0除以i的值加入到s中,直到1- n中所有满足条件的值都被加入到s中,整个循环结束,s的值返回到主函数中,然后进行输出。
以上就是函数调用的过程,请您批评指正!
工具/材料Ubuntu16.04
gcc+vim
01打开Ubuntu,并在目标路径下开启一个终端。
02选定一个路径,使用touch命令创建三个文件,function.h,function.c,test.c,分别用来做函数头文件、函数源文件以及测试文件
03这里以四则运算函数为例说明函数的编写流程与调用流程。首先用vim命令与vsplit依次打开三个文件。
04在头文件中添加重复包含的宏,并添加四则运算的函数声明。
05在function.c中将function.h包含进来,并具体实现四个方法。注意出发要对除数是否为0进行判断。
06然后编写测试程序进行测试。总的程序代码如下:
07保存所有的程序并退出,使用gcc进行编译,并运行得到的结果如下。这就是函数的声明、定义以及调用。