一个函数定义完毕后就可以在其他函数中调用(也有书称之为引用或使用)。函数的调用形式如下所示。
例如,对于max函数,一次可能的调用例子如下所示。
在调用max函数时,要写出正确的函数名(严格区分大小写),函数名后要紧跟一对小括号,在小括号内部写内容,这里函数名小括号内的内容称为实际参数列表,简称实参列表。C语言要求实参列表中参数的个数必须与形参完全一致,类型也要兼容(大多数情况下要求类型一致)。本例中第一个实参是1,第二个实参是4,当程序执行到max(1,4);时,会把实参列表的值依次传递给形参列表的变量。这个过程称为函数的参数传递。
通过以上max函数的调用例子,说明函数的调用过程。
1)当程序执行max(1,4)时,会把1传递给max中的Number1,把4传递给max函数中的Number2。
2)CPU会执行max函数体的内容。由于if后的条件表达式Number1>Number2(现在等价于1>4)不成立,所以程序会跳过“reutrnNumber1;”,去执行else后的“return Number2;”,即函数返回的值为Number2,也就是4。
3)由于函数的值是4,所以在调用例子中“Data=max(1,4);”执行完毕后Data就等于4了。(www.daowen.com)
以上是对一个有参函数执行过程的分析。建议读者把此程序输入到S041项目的main.c中,编译后在MPLAB中通过调试工具Proteus VSM来单步执行此程序,认真学习函数的定义和调用过程。
【例4-21】在MPLAB中,使用Proteus VSM调试工具单步执行以下程序。要求读者能准确地说出函数的传参和调用过程。所用硬件电路图为图4-1。
设计过程
1)用MPLAB打开项目S041,把main.c内容改为例子所示。
2)将以上代码编译后用Proteus VSM单步运行一遍,然后查看D口显示的内容。
运行效果及分析
本例输出结果是VT2亮,其他都灭。这说明Data的值是4。读者可以把“max(1,4)”改为“max(8,4)”或其他数值,通过查看最终执行结果来验证程序的正确性。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。