关于 C语言问题 aa: bb: cc: dd:

下面代码中的 aa: bb: cc: dd: 是什么?
void main()
{
unsigned char i,j;
P2=0x0f; //键盘扫描初始化
diskey=1;
P1=0xff;
display(0);
while(1)
{
keyscan();
aa: if(inflag==1)
{

i++;
//i=123; //测试,下i,j同
buff[0]=i;
//i=123;
inflag=0;
led1=0;
delay(100);
led1=1;
beep();

/*数码管动态显示,不得不说数码管显示太坑爹,要吗跳不出去循环,要吗不知道跳哪去了
下面的结构与这段代码类似不在注释了*/
while(1)
{
display(buff[0]);
keyscan();
if (inflag==1)
{
//keyscan();
inflag=1;
goto aa;
}
if((outflag==1))
{
outflag=1;
goto bb;
}
if(disflag1==1)
{
disflag1=1;
goto cc;
}
if(disflag2==1)
{
disflag2=1;
goto dd;
}
}
/*数码管动态显示*/

}

//keyscan();
bb: if(outflag==1);
{
j++;
//j=321;
//j=123;
buff[1]=j;
outflag=0;
led2=0;
delay(100);
led2=1;
beep();
beep();

while(1)

{
display(buff[1]);
keyscan();
if( (inflag==1)) //||(outflag==1)||(disflag1==0)||(disflag2==1) )
{
//keyscan();
inflag=1;
goto aa;
}
if((outflag==1))
{
outflag=1;
goto bb;
}
if(disflag1==1)
{
disflag1=1;
goto cc;
}
if(disflag2==1)
{
disflag2=1;
goto dd;
}

}
}

//keyscan();
cc: if(disflag1==1)
{
delay(1);
disflag1=0;
while(1)
{
display(i);
keyscan();
if( (inflag==1)) //||(outflag==1)||(disflag1==0)||(disflag2==1) )
{
//keyscan();
inflag=1;
goto aa;
}
if((outflag==1))
{
outflag=1;
goto bb;
}
if(disflag1==1)
{
disflag1=1;
goto cc;
}
if(disflag2==1)
{
disflag2=1;
goto dd;
}
}
}

// keyscan();
dd: if(disflag2==1)
{
disflag2=0;
while(1)
{
display(j);
keyscan();
if( (inflag==1))//||(outflag==1)||(disflag1==0)||(disflag2==1) )
{
//keyscan();
inflag=1;
goto aa;
}
if((outflag==1))
{
outflag=1;
goto bb;
}
if(disflag1==1)
{
disflag1=1;
goto cc;
}
if(disflag2==1)
{
disflag2=1;
goto dd;
}
}

}
}
}

第1个回答  2014-11-23
goto跳转用的像是标记只有先标记了goto财可以跳转你看goto那里是不是都有aa什么的嘛追问

比如 bb: if(outflag==1); 中的 bb: 是什么作用,这是什么语句呢?

追答

bb:只是标记if((outflag==1))
{
outflag=1;
goto bb;
}
这个时候会跳到bb那里去

本回答被提问者和网友采纳