您的位置:首页 > 编程语言 > C语言/C++

基于proteus的51单片机仿真实例三十八、C语言的函数调用

2017-05-01 09:13 281 查看
1、函数调用

C语言程序中函数是可以互相调用的(注意:主函数是唯一一个不能被调用的函数)。所谓函数调用就是在一个函数的执行过程中,引用另外一个已经定义或声明了的函数(注意:函数必须先声明后调用)。主调函数调用被调函数的一般形式为:

函数名(实际参数表列)

说明如下:

函数名:指出被调用的函数

实际参数列表:实际参数列表中可以包含多个实际参数,各个参数之间用逗号隔开。实际参数的作用是将它的值传递给被调用函数中的形式参数。需要注意的是:函数调用中的实际参数与函数定义中的形式参数必须在数量、类型及顺序上严格保持一致,这样才能确保正确地进行参数传递。否则在执行过程中会出现错误。如果调用的是无参函数,则可以没有实际参数表列,但圆括号()不能省略。

2、C语言中可以采用三种方式实现函数的调用

1)函数语句调用

在主调函数中将函数作为一条语句,例如:

sum();       这是无参函数的调用,它不要求被调函数返回一个确定的值

2)函数表达式调用

被调函数作为语句的一部分,只要求它完成一定的操作。

在主调函数中将函数调用作为一个运算对象直接出现在表达式中,这种表达式称为函数表达式。例如

P0=sum(2,3);

这其实是一条赋值语句,在这条语句中包含了函数调用,在这里将被调用函数的返回值赋给P0,因此这种函数调用方式要求被调函数返回一个确定的值。

3)作为函数参数调用

在主调函数中将函数调用作为另一个函数调用的实际参数。例如

sum=max(a,num(b,c));

这种在调用一个函数的过程中,又调用了另外一个函数的方式,称为函数的嵌套。

3、对被调函数的说明

在一个函数中调用另一个函数(即被调函数),需要具备如下条件:

1)被调函数必须是已经存在的函数(库函数或者是在该函数之前被定义或声明过的函数)

2)如果程序中使用了库函数,或者使用不在同一文件中的自定义函数,则需要在程序的开头用#include预处理命令将调用有关函数时所需的信息文件包含到本程序中。对于自定义函数,如果不是在本文本中定义的,那么在程序开始时要用extern修饰符进行原型声明。

 

4、本例演示一个既带参数,又有返回值的函数调用实例,

5、在keil c51中新建工程ex27,输入如下的程序代码,编译并生成ex27.hex文件

//实例27:函数参数及返回值综合演示实验,通过P0口显示

#include <reg51.h>

//

unsigned char sum(unsigned char num1,unsigned char num2)  //函数返回值类型为无符号字符型

{

  unsigned char num3;          //定义变量

 num3 = num1 + num2;    //求和

 return (num3);     //返回值



void main(void)

{

    P0 = sum(22,33);     //值送P0口显示

   

 while(1)

 {

 }

}

6、在proteus中新建仿真文件ex27.dsn,原理图如下图所示



7、将ex27.hex文件载入at89c51中,启动仿真,运行结果如下图所示

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐