c51 goto用法

这是我用goto编的一个按键控制程序,用按键及时控制进入不同的效果,但编译后有问题,提示符有问题,请您帮我看一下问题出在哪里,是不是标识符用错。还有,有没有别的方法可以做... 这是我用goto编的一个按键控制程序,用按键及时控制进入不同的效果,但编译后有问题,提示符有问题,请您帮我看一下问题出在哪里,是不是标识符用错。还有,有没有别的方法可以做到按键及时控制效果。谢谢!!!(呃···财富值好像么有了····

#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,a,b,c,saa,mec,xdw;
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void fenli()
{
a=0xef; //1110 1111
b=0xf7; //1111 0111
while(1) // 中间向两边循环,8次为一循环,8=c
{
P0=a&b; //把a,b按位与之后的值赋给p0
a=_crol_(a,1); //左移循环
delayms(1);
b=_cror_(b,1); //右移循环
P1=0xfe;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
delayms(10);
P1=0xfe;
temp=P1;
temp=temp&0xf0;
if(temp==0xe0)
goto saa;
if(temp==0xd0)
goto mec;
if(temp==0xb0)
goto xdw;
if(temp==0x70)
goto xdw;
}
delayms(500);

}
}
void fugai()
{
while(1) // 覆盖效果,a=覆盖次数
{
P0=0x7f;
for(c=8;c>0;c--)
{
P0=P0<<1;
delayms(500);
P1=0xfe;
temp=P1;
temp=temp&0xf0;
if(temp!=0xfe)
{
delayms(10);
P1=0xfe;
temp=P1;
temp=temp&0xf0;
if(temp==0xe0)
goto saa;
if(temp==0xd0)
goto mec;
if(temp==0xb0)
goto xdw;
if(temp==0x70)
goto xdw;
}
}

P0=0xfe;
for(c=8;c>0;c--)
{
P0=P0>>1;
delayms(500);
P1=0xfe;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
delayms(10);
P1=0xfe;
temp=P1;
temp=temp&0xf0;
if(temp==0xe0)
goto saa;
if(temp==0xd0)
goto mec;
if(temp==0xb0)
goto xdw;
if(temp==0x70)
goto xdw;
}

}
}
}
void main()
{
while(1)
{
saa:
fenli();
mec:
fugai();
}
xdw:while(1)
{

}
展开
 我来答
day忘不掉的痛
2015-08-14 · 知道合伙人数码行家
day忘不掉的痛
知道合伙人数码行家
采纳数:62646 获赞数:223942
本人担任公司网络部总经理多年,有充足的网络经验、互联网相关知识和资讯。

向TA提问 私信TA
展开全部
goto 被保留下来有它的道理,虽然对结构化程序来说,不提倡使用
最大的好处就是可以一下跳出循环
int a = 0;
int i,j,k,l,m,n;

for (i = 0; i < 10; i++)
for (j = 0; j < 10; j++)
for (k = 0; k < 10; k++)
for (l = 0; l < 10; l++)
for (m = 0; m < 10; m++)
for (n = 0; n < 10; n++)
{
a++;
if (a > 20)
goto exit_for;
}

:exit_for;

一句 goto 飕的一下就可以跳出循环
belimys
2010-10-15
知道答主
回答量:29
采纳率:0%
帮助的人:17.6万
展开全部
goto saa; 和 saa:必须写在同一个函数里。你可以把想要执行的函数放在goto句那,不用goto
来自:求助得到的回答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式