单片机C语言关于函数的问题,高手进
#include<REG52.H>voiddelay(){inta;for(a=0;a<5;a++);}voidmain(){P2=0x80;delay();}这个程序是...
#include <REG52.H>
void delay()
{
int a;
for(a=0;a<5;a++);
}
void main()
{
P2=0x80;
delay();
}
这个程序是没问题的,问题是:程序中有两个Void函数,当主函数(main)在前面,Delay函数放在后面的时候,编译就不能通过了,为什么?
#include <REG52.H>
void main()
{
P2=0x80;
delay();
}
void delay()
{
int a;
for(a=0;a<5;a++);
}
这样就编译不通过,为什么? 展开
void delay()
{
int a;
for(a=0;a<5;a++);
}
void main()
{
P2=0x80;
delay();
}
这个程序是没问题的,问题是:程序中有两个Void函数,当主函数(main)在前面,Delay函数放在后面的时候,编译就不能通过了,为什么?
#include <REG52.H>
void main()
{
P2=0x80;
delay();
}
void delay()
{
int a;
for(a=0;a<5;a++);
}
这样就编译不通过,为什么? 展开
7个回答
展开全部
#include <REG52.H>
void delay();
void main()
{
P2=0x80;
delay();
}
void delay()
{
int a;
for(a=0;a<5;a++);
}
在最上面声明下 就可以啦 因为是先进入主函数 再继续往下 而delay在下面编译工具检测的时候 检测不到 不能往下编译 所以 就出错咯 定义 一般要放到前面 这个你懂把
void delay();
void main()
{
P2=0x80;
delay();
}
void delay()
{
int a;
for(a=0;a<5;a++);
}
在最上面声明下 就可以啦 因为是先进入主函数 再继续往下 而delay在下面编译工具检测的时候 检测不到 不能往下编译 所以 就出错咯 定义 一般要放到前面 这个你懂把
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那是你没遵循C语言先声明后调用的原则,delay()函数必须在调用它之前先声明:void delay();这样即使你的延时函数主体在主函数下面也可以了
追问
如果我就是想让delay程序放在main函数下面,那么有什么声明的办法或有什么方法呢?
追答
#include
void delay();
void main()
{
P2=0x80;
delay();
}
void delay()
{
int a;
for(a=0;a<5;a++);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用interrupt关键字声明按键中断函数(外部中断)函数中将亮灯标志移位并输出到IO口;
定时器中断举例,如
void Timer1ISR(void) interrupt 3 using 2 //定时器2中断,
//Timer1ISR 为中断函数名
{
//屏蔽中断
//主要代码
//打开中断
}
再如
void Timer0ISR(void) interrupt 1 using 3 //定时器0中断程序,用于走时,
{
}
定时器中断举例,如
void Timer1ISR(void) interrupt 3 using 2 //定时器2中断,
//Timer1ISR 为中断函数名
{
//屏蔽中断
//主要代码
//打开中断
}
再如
void Timer0ISR(void) interrupt 1 using 3 //定时器0中断程序,用于走时,
{
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
童鞋学过C语言没有,C语言中函数的调用要声明(如果调用的函数在该函数前面则可省略声明),你后面那个调用发要先在前面声明
void delay()
#include <REG52.H>
void main()
{
P2=0x80;
delay();
}
void delay()
{
int a;
for(a=0;a<5;a++);
}
void delay()
#include <REG52.H>
void main()
{
P2=0x80;
delay();
}
void delay()
{
int a;
for(a=0;a<5;a++);
}
追问
试了下你的程序,Error near sfr,sfr P1附近有问题。
如果声明,怎么声明?
追答
#include
void delay();
void main()
{
P2=0x80;
delay();
}
void delay()
{
int a;
for(a=0;a<5;a++);
}
漏了个分号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
姐姐,你还是先看好C语言把
C语言你都没有学好,你就开始学习单片机,有点浮躁。
函数调用前一定要声明,这最普通的学生都知道的事情。
C语言你都没有学好,你就开始学习单片机,有点浮躁。
函数调用前一定要声明,这最普通的学生都知道的事情。
追问
请针对问题回答,谢谢
追答
函数的调用 要先声明,后才能被调用。 如果先调用,后声明,那么编译器找不到你的函数。会给出错误的提示 说找不到调用的函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询