gpt4 book ai didi

c - 按匹配概率对 switch case 进行排序是否可以提高效率?

转载 作者:行者123 更新时间:2023-11-30 19:42:10 25 4
gpt4 key购买 nike

假设我们读取各种字符。如果我们知道 a 的数量比 g 的数量多,这样会不会更有效率

for (int i = 0; buffer[i]; ++i) {

switch(buffer[i]) {
case 'a': //do something
break;

case 'g': //do something else
break;
}
}

而不是将 case g 放在第一位,然后将 case a 放在第二位?

编辑:我说的是时间效率。我知道即使有进步,那也是微不足道的。我只是好奇。

最佳答案

switch 控制结构生成的代码取决于具体的 case 值以及您使用的编译器。

但是案例的顺序并不重要。无论 case 标签是升序、随机还是降序排序,结果始终是相同的。它如何为您提供最好的服务完全取决于您。

一个好的编译器会决定是使用跳转表还是链式if-else。如果值接近,它将使用跳转表,如果不是,则链接 if-else 和二分搜索。

所以,恕我直言,它应该取决于编译器。

关于c - 按匹配概率对 switch case 进行排序是否可以提高效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32681799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com