从函数中更改函数指针的目标是否有任何问题?(C++)

3 c++ pointers function-pointers function

我有一个程序,它定义从所述指针调用的函数内更改函数指针的目标函数,如下所示:

void increment(int&);
void superincrement(int&);

void (*fooncrement)(int&);

int main() {
    int j = 0;
    fooncrement = increment;
    while (true == true) {
        fooncrement(j);
    }
}

void increment(int& i) {
    static int counter = 0;

    i++;

    if (counter > 7)
        fooncrement = superincrement;
    counter++;
}

void superincrement(int& i) {
    i += 23;
}
Run Code Online (Sandbox Code Playgroud)

快速浏览MSVC的调试器表明该程序或多或少按预期工作.但是,如果我在更复杂的环境中尝试过类似的东西,那么这里有什么问题不会立即明显吗?

Oli*_*rth 6

这是明确的定义.

实际上,这种技术通常用于实现状态机.