BYTE Read(BYTE D1)
{
BYTE D2;
PRT1DR=(0x07)|(PRT1DR&0xF8);
switch(D1)
{
case IP0:
case IP2: PRT0DR=(0x40)|(PRT0DR&0x3F); break;
case IP1:
case IP3: PRT0DR=(0x00)|(PRT0DR&0x3F); break;
}
switch(D1)
{
case IP0:
case IP1: PRT1DR=(0x00)|(PRT1DR&0xF8); break;
case IP2:
case IP3: PRT1DR=(0x01)|(PRT1DR&0xF8); break;
}
Delay_8us(1);
D2=PRT4DR;
PRT1DR=(0x07)|(PRT1DR&0xF8);
return(D2);
}
请问这个函数中,两个相同条件的switch语句,怎么理解,执行顺序是怎么样的?
x=1,进入swith(x)的case1.也就是
下面这段
switch(y)
{
case 0:a++;break;
case 1:b++;break;
}
此时y=0;进入case 0,。运行a++使a=1,然后break跳出switch(y).
因为在swith(x)的case 1中没有break语句,所以一次运行到case 2.a++和b++使a=2,b=1;
下面这段
switch(y)
{
case 0:a++;break;
case 1:b++;break;
}
此时y=0;进入case 0,。运行a++使a=1,然后break跳出switch(y).
因为在swith(x)的case 1中没有break语句,所以一次运行到case 2.a++和b++使a=2,b=1;
温馨提示:答案为网友推荐,仅供参考