如何从函数返回void(*)(void)变量? 更确切地说,如何标记返回类型?
???? getFunc(){
void (*pt2Func)(void) = ...;
return pt2Func;
}
void main(){
void (*myFunc)(void) = getFunc();
myFunc();
}
答案 0 :(得分:2)
最易读的方法是通过类型别名:
using VoidFct = void (*)(void);
VoidFct getFunc(){
return &f;
}
可以将指针传递给的函数
#include <cstdio>
void f() {
std::puts("laksjdf");
}
客户可能是
VoidFct g = getFunc();
g();