为什么switch...case语句比if...else执行效率高

为什么switch...case语句比if...else执行效率高

简言之,编译的时候创建了一个map存于.rodata区中,运行的时候直接根据输入(c的值)查表,找到对应的IP后直接跳转。 (省去了cmp, jmp -> cmp, jmp -> cmp, jmp...这一冗长的计算过程。)

 

总结: switch...case...执行效率高,属于典型的以空间换时间。也就是说,(套用算法的行话)以提高空间复杂度为代价降低了时间复杂度。


猜你喜欢

转载自blog.csdn.net/u014683368/article/details/80177588