是否可以将函数动态分配给函数指针

Is it possible to assign a function to function pointer dynamically?

本文关键字:函数 动态分配 指针 是否      更新时间:2023-10-16

是否可以在没有实际函数add()的情况下以某种方式声明函数并将其分配给main()中的函数指针func

当前代码:

#include <iostream>
int add(int a, int b)
{
    return a + b;
}
int main()
{
    typedef int (*funcPtr)(int a, int b);
    funcPtr func = &add;
    std::cout << func(2,3) << std::endl;
}

首选样式:(如果可能(

#include <iostream>
int main()
{
    typedef int (*funcPtr)(int a, int b);
    funcPtr func = (funcPtr){return a + b}; // is something like this possible?
    std::cout << func(2,3) << std::endl;
}

有没有办法像我上一个代码一样将函数动态分配给函数指针?

您可以使用 lambda;如果未捕获任何内容,则可以隐式转换为函数指针。

funcPtr func = [](int a, int b) {return a + b;};