是否可以在开关盒中使用功能指针?

时间:2016-04-27 07:47:27

标签: c pointers casting switch-statement c-preprocessor

我使用基于函数指针的状态机。 我需要一个功能来检查不同的统计数据。功能量非常大。所以我想不要使用if else else else ......链。我想使用swithc case语句: 我使用了以下代码:

    switch (my_state_func)
    {
       case &idle_state_func:
       case NULL:
          //...
          break;
       case &failed_func:
          break;
       default:
          break;
    }

现在编译器告诉我,我不能在switch case

中使用指针

有没有办法解决这个问题?我尝试了指针的整数转换。 这会产生错误:

标签不会减少到整数常数

case (int)&idle_func:

是否有宏观或某种东西?逻辑上它应该是可能的,因为每个功能点都是整数。

感谢您的帮助。

0 个答案:

没有答案