返回变量为void(*)(void)

时间:2019-04-18 09:35:12

标签: c++

如何从函数返回void(*)(void)变量? 更确切地说,如何标记返回类型?

???? getFunc(){
        void (*pt2Func)(void) = ...;
        return pt2Func;
}

void main(){
     void (*myFunc)(void) = getFunc();
     myFunc();
}

1 个答案:

答案 0 :(得分:2)

最易读的方法是通过类型别名:

using VoidFct = void (*)(void);

VoidFct getFunc(){
   return &f;
}

可以将指针传递给的函数

#include <cstdio>

void f() {
   std::puts("laksjdf");
}

客户可能是

VoidFct g = getFunc();

g();