请问下这个程序编译时为什么出现DELAY:requires ANSI-style prototype?

liqiming100 2010-10-25 12:06:43
#include<reg52.h>
/*int*/void DELAY();
main()
{
P2=0X00;
DELAY(600);
P2=0XFF;
DELAY(600);
}
/*int*/void DELAY(int i)
{
int j;
for(i;i>0;i--)
for(j=255;j>0;j--)
}
...全文
6038 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
unsummon 2012-03-07
  • 打赏
  • 举报
回复
‘delay’:requires ansi-style prototype 原来搞忘了在主函数前声明
wubingqp 2011-12-27
  • 打赏
  • 举报
回复
/*int*/void DELAY(int i)
{
int j,m;
for(m=i;m>0;m--)
for(j=255;j>0;j--) 加上
}
liqiming100 2010-10-25
  • 打赏
  • 举报
回复
问题似乎处在我声明的时候应该在()内写入int i;
liqiming100 2010-10-25
  • 打赏
  • 举报
回复
问题不出在那儿啊。
下面这个程序就是这样的:
这个程序是可以编译通过的。
#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器

void delay(unsigned int i); //声明延时函数

main()
{

P2 = 0x00; //置P0口为低电平

delay(600); // 延时

P2 = 0xff; //置P0口为高电平


delay(600); // 延时


}

/*******延时函数*************/
void delay(unsigned int i)
{
unsigned char j;
for(i; i > 0; i--)
for(j = 255; j > 0; j--);
}












liqiming100 2010-10-25
  • 打赏
  • 举报
回复
for(i;i>0;i--)有这种用法啊。没问题的
Athenacle_ 2010-10-25
  • 打赏
  • 举报
回复
void DELAY();~ 请用ANSI C标准的声明~明确说明其参数~。
wyfwx 2010-10-25
  • 打赏
  • 举报
回复
int j;
for(i;i>0;i--)
for(j=255;j>0;j--)
{
;
}
lalahu007 2010-10-25
  • 打赏
  • 举报
回复
/*int*/void DELAY(int i)
{
int j;
for(i;i>0;i--)//这里的i有这种用法吗?for(j=255;j>0;j--)
}

/*int*/void DELAY(int i)
{
int j,m;
for(m=i;m>0;m--)
for(j=255;j>0;j--)
}
liqiming100 2010-10-25
  • 打赏
  • 举报
回复
你的意思就是我应该在DELAY(600)前加上void 吗?可是我刚刚这样做却依旧没有解决问题。
gameslq 2010-10-25
  • 打赏
  • 举报
回复
1.函数声明和定义不一致:
/*int*/void DELAY();->/*int*/void DELAY(int i)
2.空语句
for(j=255;j>0;j--)
;//直接加上;
Soulic 2010-10-25
  • 打赏
  • 举报
回复
DELAY(600); /*int*/void DELAY(int i) 和声明不一致啊
Athenacle_ 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 liqiming100 的回复:]

问题似乎处在我声明的时候应该在()内写入int i;
[/Quote]
就是这样~否则就不是ANCI风格的C了,而是K&R风格的C了~

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧