我使用基于函数指针的状态机。 我需要一个功能来检查不同的统计数据。功能量非常大。所以我想不要使用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:
是否有宏观或某种东西?逻辑上它应该是可能的,因为每个功能点都是整数。
感谢您的帮助。