函数指针指向的函数返回指向其他相同类型函数的函数指针

问题描述

什么标题

大家好,

我想实现一个由 fp 循环调用管理的状态机。在函数中(在数据管理之后),指针应该指向相同类型的不同函数,这取决于传感器数据。这是函数的返回类型,然后通过现在更新的 fp 再次调用。这使我能够在每次状态更改时捕获转换。这些功能主要处理 LCD 显示器。

我尝试了以下方法

static void* (*pNowF)(LiquidCrystal_I2C);
static void* (*pNextF)(LiquidCrystal_I2C);
pNowF = defaultState;

while(true){

    pNextF = pNowF(LCD);
    pNowF = pNextF;

}

void* defaultState(LiquidCrystal_I2C MainLCD){
    
    //...data management

    //while in defaultState,only 3 transitions can happen:
    
    if(myFlags->press1){ //determined by sensor 1
        pNextF = state1;
        return pNextF;
    }

    if(myFlags->press2){ //determined by sensor 2
        pNextF = state2;
        return pNextF;
    }

    while(myFlags->idle){
        //stay in this state
    }
}

我知道这些状态函数的返回类型与 fp 所期望的不符,但是我如何将函数的返回类型声明为其自身类型的 fp?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)