switch 语句
int i=4,j=0;
switch(i)
{
{ j=5;printf("test =%d",j);} // ...........(1) case 0:
j=0;
break;
case 1:
j=1;
break;
case 2:
j=2;
break;
case 3:
j=3;
break;
case 4: //.....................(2) j=4;
break;
case 5:
// j=1;
break;
default:
break;
}
printf("test =%d",j);
如上面的代码, 编译的时候语句(1)是肯定不会编译成汇编语句的,但是为什么还是会进行语法检查?
vc6.0上编译的时候所有的case 语句都会被编译,但是在armads120的环境中编译的时候,居然只编译了case 4: 其他的都被优化了,这种优化太神奇了,望高手解释一下!