keil调试如下程序时,提示错误: warning C280:'even':unreferenced local variable 等,跪求解答啊!

#include<reg52.h>voiddelay_even_us(unsignedchareven)//任意偶数的us级延时{#pragmaasmmova,r7sub... #include<reg52.h>
void delay_even_us(unsigned char even)//任意偶数的us级延时
{
#pragma asm
mov a,r7
subb a,#10H
mov b,#02H
div ab
mov r0,a
nop
loop:
djnz r0,loop
#pragma endasm
}

void delay_odd_us(unsigned char odd)//任意奇数的us级延时
{
#pragma asm
mov a,r7
subb a,#0fH
mov b,#02H
div ab
mov r0,a
loop1:
djnz r0,loop1
#pragma endasm
}

void main()
{
delay_even_us(20);
delay_even_us(100);
delay_even_us(450);
delay_odd_us(33);
delay_odd_us(101);
delay_odd_us(45);
}
展开
 我来答
qp97642651
推荐于2018-03-01
知道答主
回答量:34
采纳率:0%
帮助的人:25.1万
展开全部
情况是正常的 因为你函数括号中定义的形参在函数内部没有得好使用,所以会弹出这个warning。

不过程序是没有错的 因为你在c中嵌入汇编。而编译器是keil。keil会自动将函数中的参数传递给R7,这也就是 MOV A,R7这句话中为什么要使用R7的原因。

综上所述,这是一个欺骗了编译器的程序。表面上是没有使用函数参数,实际上确使用了^_^
熊熊熊灬熊孩子
2018-04-11 · TA获得超过7374个赞
知道小有建树答主
回答量:69
采纳率:0%
帮助的人:8691
展开全部
  1. void display(uchar a,uchar b,uchar c,uchar d)-----------提示这句出错。

  2. 意思就是虽然你使用a传进来一个参数,但是你在这个函数里却没有使用。

  3. 如果display使用不到a这个参数,就直接去掉就可以了。

  4. 这是一个警告,在这里没有什么影响,可以正常运行。

unreferenced local variable的作用:

  1. unreferenced:未引用的。

  2. local:局部的。

  3. variable:变量。

  4. 这是一个warning,对程序没什么影响,可以不理会。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
melody丶丨
2012-12-04 · TA获得超过1393个赞
知道小有建树答主
回答量:390
采纳率:100%
帮助的人:140万
展开全部
这不是错误只是一个警告 你的even和odd这两个变量没有使用到 提示你一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DN_海伦泰勒
2012-12-04 · TA获得超过104个赞
知道答主
回答量:68
采纳率:0%
帮助的人:46.1万
展开全部
这不是错误,只是警告。意思你申请的这2个参数没有使用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式