51单片机下函数的声明位置

本文探讨了51单片机编程时函数声明的位置对程序运行的影响。通常,子函数会放在主函数之前声明,但如果涉及子函数间的相互调用,位置就显得尤为重要。通过实例,作者说明了两种函数声明方式:一是将所有子函数声明放入主函数内部;二是只在主函数中声明主函数调用的子函数,而在调用子函数的函数内部声明被调用的子函数。总结得出,每个调用其他子函数的函数都可以视为“主函数”,需要确保被调用的子函数在其内部或之前被声明或定义。
摘要由CSDN通过智能技术生成

在初次接触51单片机代码编写时,我们大多数人一般都会选择将所调用子函数的声明统一放在主函数之前,亦或干脆将子函数的编写工作放在主函数之前,以保证程序的正常运行。但以上两种函数定义或声明方式并不能满足我们编写程序时所有情形的要求,如:子函数相互调用时,即使子函数在主函数前进行定义,对子函数的相对位置仍有要求。如下

#include <reg52.h>
#define uint unsigned int 
#define uchar unsigned char
sbit led1=P1^0;	
sbit key1=P3^4;										//定义按键按下小灯泡发亮
void LED()															
{
	key();											//小灯函数调用键盘函数
}	

void key()											//键盘函数控制led1的亮和灭
{
	if(key1==0)
	{
		delaytool(5);
		if(key1==0)									//键盘防抖动操作
		{
			led1=0;
		
		}
		else
		{	
			led1=1;
		}
		while(!key1);								//等待按键松手检测
	}
}

void main()
{
	void delaytool(uint z);							//声明延时子函数
	LED();											//调用子函数
}

void delaytool(uint z)								//延时函数,此处z=1,延时时间大约是1ms
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);

}

如上图所示,将LED函数称为子函数a,key函数成为子函数b,两个子函数均在主函数之前定义,且子函数a调用子函数b,主函数调用子函数a࿰

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值