小编Dan*_*ron的帖子

c切换和跳转表

据我所知,c/c ++中的switch语句有时会编译为跳转表.我的问题是,有没有拇指规则可以保证?

在我的情况下,我正在做这样的事情:

enum myenum{
MY_CASE0= 0,
MY_CASE0= 1, 
.
.
.
};

switch(foo)
{
  case MY_CASE0:
  //do stuff
  break;
  case MY_CASE1:
  //do stuff
  break;
 .
 .
 .
}
Run Code Online (Sandbox Code Playgroud)

我按顺序覆盖从1到n的所有情况.可以安全地假设它会编译成跳转表吗?原始代码是一个冗长而混乱的if else陈述,所以至少我获得了一些可读性.

c++ switch-statement jump-table

8
推荐指数
2
解决办法
6366
查看次数

标签 统计

c++ ×1

jump-table ×1

switch-statement ×1