首页 > 解决方案 > 如何制作函数的多个副本并在C中异步调用它

问题描述

假设我们有一个函数指针

int (*functionPtr)(int);
functionPtr = &doSomething;

假设我不断收到一个整数流:58,63,85,1000,8555,-9,-10 ......该流以高速进入并且可以将整个整数范围从 INT_MIN 扩展到 INT_MAX。

如果我像这样一个接一个地调用它,事情就会变得非常非常缓慢:

int result = (*functionPtr)(intvar)

相反,当然,在代码内部,我想做的是能够制作 functionPtr 指向的函数的 N 个副本,并将指向这 N 个副本的指针保存在一个数组中。

然后我想使用这样的调用格式同时和异步调用这些副本:

(*functionPointer[N])(intvar) //Syntax might be little off, but you get the idea.

C中是否有任何方法或纪律来实现这一目标?

标签: casynchronousfunction-pointers

解决方案


没有函数副本这样的东西。如果你想在多个线程中运行相同的函数,那么就这样做。对函数的每次调用都会有它自己的参数副本,以及它自己的执行堆栈(意味着它自己的局部变量)。


推荐阅读