我有几个void函数可以在代码中做一些重要的事情。
void function1(Myclass class1, int myvar)
{
// do some stuff
}
void function2(Myclass class1, int myvar)
{
// do some other stuff
}
// ... maybe some more similar functions
我想创建一个函数,该函数根据我传递的参数返回指向这些函数中任何一个的指针。我不知道该怎么做。我想要类似的东西
void* choosefunction(int i, int j)
{
if (i == j) return (void*)function1;
else return (void *)function2;
}
然后我将通过该指针调用它们。
void *(*ptrProcFunc)(int,int);
ptrProcFunc = &choosefunction;
(*ptrr)() = ptrProcFunc(i,j);
ptrr(class1,myvar);
如何正确做?谢谢。
typedef
是你的朋友。
typedef void (*func_ptr)(Myclass, int);
func_ptr choosefunction(int i, int j)
{
if (i == j) return &function1;
else return &function2;
}
然后:
func_ptr ptrr = choosefunction(i,j);
ptrr(class1,myvar);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句