如何将一系列函数指针作为一个论点?
我有一系列函数指针int(*oper_ptr [4])(int,int)= {add,sub,sub,mul,divi};
对于以下功能,该功能只需在两个传递的整数上执行标准操作:
int add(int num_a, int num_b);
int sub(int num_a, int num_b);
int mul(int num_a, int num_b);
int divi(int num_a, int num_b);
将此数组传递到另一个函数的最佳方法是什么。我尝试了: void polish(char* fileName,int(* oper_ptr [4])(int,int))
with for eg,oper_ptr [0](num_a,num_a,num_b);
to to调用第一个功能。
I have an array of function pointers int (*oper_ptr[4])(int, int) = {add, sub, mul, divi};
for the below functions which simply perform a standard operation on two passed integers:
int add(int num_a, int num_b);
int sub(int num_a, int num_b);
int mul(int num_a, int num_b);
int divi(int num_a, int num_b);
What is the best way to pass this array into another function. I have tried:void polish(char* filename, int (*oper_ptr[4])(int, int))
with for e.g., oper_ptr[0](num_a, num_b);
to call the first function.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您做的方式有效。但是,与函数指针一样,在没有Typedef的情况下使用它们是一个坏主意:
The way you have done it works. But as always with function pointers, it's a bad idea to use them without typedef: