小编Oms*_*lta的帖子

交换机或const表更好吗?(嵌入式SW)

我想知道,如果有可能,它是否更有效的开关或const表?

例如,什么会表现更好:

switch(input) {
  case 0: value = VALUE_0;
    break;
  case 1: value = VALUE_1;
    break;
  case 2: value = VALUE_2;
    break;
  case 3: value = VALUE_3;
    break;
  case 4: value = VALUE_4;
    break;
  case 5: value = VALUE_5;
    break;
  case 6: value = VALUE_6;
    break;
  default:    
    break;
}
Run Code Online (Sandbox Code Playgroud)

或类似的东西:

const uint8_t INPUT_TO_VALUE_TABLE[N_VALUE] = {
    VALUE_0,
    VALUE_1,
    VALUE_2,
    VALUE_3,
    VALUE_4,
    VALUE_5,
    VALUE_6,
}
...
...
value = INPUT_TO_VALUE_TABLE[input];
Run Code Online (Sandbox Code Playgroud)

我已经展示了一个虚拟示例,但我还有使用调用不同函数的开关或函数指针表的代码.

代码适用于8位micro(我不知道这个主题是否有任何区别).

c arrays embedded switch-statement

4
推荐指数
1
解决办法
123
查看次数

标签 统计

arrays ×1

c ×1

embedded ×1

switch-statement ×1