为什么switch...case语句比if...else执行效率高
Posted sinferwu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么switch...case语句比if...else执行效率高相关的知识,希望对你有一定的参考价值。
https://www.cnblogs.com/idorax/p/6275259.html
switch case 语句多的时候 编译器会将switch case 转为跳转表 (.rodata)
#include <stdio.h> static int foo_ifelse(char c) { if (c == ‘0‘ || c == ‘1‘) { c += 1; } else if (c == ‘a‘ || c == ‘b‘) { c += 2; } else if (c == ‘A‘ || c == ‘B‘) { c += 3; } else { c += 4; } return (c); } static int foo_switch(char c) { switch (c) { case ‘1‘: case ‘0‘: c += 1; break; case ‘b‘: case ‘a‘: c += 2; break; case ‘B‘: case ‘A‘: c += 3; break; default: c += 4; break; } return (c); } int main(int argc, char **argv) { int m1 = foo_ifelse(‘0‘); int m2 = foo_ifelse(‘1‘); int n1 = foo_switch(‘a‘); int n2 = foo_switch(‘b‘); (void) printf("%c %c %c %c ", m1, m2, n1, n2); return (0); }
以上是关于为什么switch...case语句比if...else执行效率高的主要内容,如果未能解决你的问题,请参考以下文章
React 项目使用 switch ... case ... 语句
React 项目使用 switch ... case ... 语句