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

时间:2021-02-25 09:31:46

标签: c++ function-pointers state-machine

什么标题

大家好,

我想实现一个由 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?

0 个答案:

没有答案
相关问题