switch反汇编自学过程中的总结:
例子: 随便写一个3个case的switch,查看汇编。
void function()
{
int i = 0;
switch (i)
{
case 1:
printf("1");
break;
case 2:
printf("2");
break;
case 3:
printf("3");
break;
default:
printf("error");
break;
}
}

看得出与if的反汇编并无差别,并且挨个判断。所以如果没有3个以上的case条件可不必要使用switch。
修改一下例子:
void function()
{
int i = 0;
switch (i)
{
case 1:
printf("1");
break;
case 2:
printf("2");
break;
case 3:
printf("3");
break;
case 4:
printf("4");
break;
case 5:
printf("5");
break;
default:
printf("error");
break;
}
}
反汇编代码:

其中0x6A1

最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



