基于proteus的51单片机仿真实例三十七、C语言的函数参数传递

来源:互联网 发布:树莓派读取温湿度数据 编辑:程序博客网 时间:2024/05/29 07:49
1、在函数中的形式参数,在该函数未被调用时,他们并不占用内存中的存储单元。只有在发生函数调用时,函数的形参才被分配内存单元。在调用结束后,形参所占的内存单元也被释放。
实参可以是常量、变量或表达式,C语言要求实参必须有确定的值,在调用时将实参的值赋给形参。
2、从函数有没有形参来看,又可划分为无参数函数、有参数函数、空函数三种。
1)无参数函数
此种函数在被调用时不需要进行参数传递,主调函数没有数据传递给被调函数。无参函数可以返回、也可以不返回函数值
2)有参函数
调用此函数时,在主调函数和被调函数之间有参数传递。也就是说,主调函数可以将数据传递给被调函数使用,被调函数也可以有返回值,也可以没有返回值
3)空函数
如果定义函数时,函数体内没有任何语句,只有一对大括号{},则该函数为空函数。这种空函数在程序的设计过程中十分有用,设计程序时,可以先定义不同功能模块的函数体,不添加任何内容,在需要时,再添加相应内容。这样可以使程序的结构清晰、可读性好,并且易于扩充。
3、本例演示带参数函数的调用,并通过p0口显示运行结果
4、在keil c51中新建工程ex26,编写如下程序代码,编译并生成ex26.hex文件
//实例26:函数参数演示实验,通过P0口显示
#include <reg51.h>
//
void sum(unsigned char num1,unsigned char num2)  //函数返回值类型为无符号字符型
{
  unsigned char num3;          //定义变量
 num3 = num1 + num2;    //求和
 P0 = num3;     //值送P0口显示
void main(void)
{
  
   sum(20,30);
 while(1)
 {
 }
}
5、在proteus中新建仿真文件ex26.dsn,原理图如下

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


0 0
原创粉丝点击