gpt4 book ai didi

c - Switch case优化场景

转载 作者:行者123 更新时间:2023-11-30 18:43:41 24 4
gpt4 key购买 nike

我知道各种 switch case 优化技术,但根据我的理解,大多数现代编译器并不关心你如何编写 switch case,他们无论如何都会优化它们。

问题是这样的:

void func( int num)

set = 1,2,3,4,6,7,8,10,11,15

{
if (num is not from set )
regular_action();
else
unusual_stuff();
}

该集合始终具有上述值或类似于许多紧密间隔的元素的值。

例如

set = 0,2,3,6,7,8,11,15,27 是另一个可能的值。

在我的程序运行期间,大多数时候传递的否不是来自该集合,但是当它来自该集合时,我需要采取一些操作。

我尝试使用以下函数来模拟上述行为,只是为了弄清楚 switch 语句应该以哪种方式编写。除了 switch case - 跳转表 - 比较之外,下面的函数不执行任何操作。

我需要确定 compare_1 更快还是 compare_2 更快。在我的双核机器上,compare_2 看起来总是更快,但我无法弄清楚为什么会发生这种情况?编译器是否如此智能,以至于在这种情况下也能进行优化?

最佳答案

没有办法感觉某个函数比另一个函数更快。进行测量(不使用 printf)并比较生成的汇编程序(对编译器使用选项 -S)。

关于c - Switch case优化场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3559404/

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