如何制作函数的多个副本并在 C 中异步调用它

How to make multiple copies of functions and asynchronously invoke it in C

假设我们有一个函数指针

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

假设我不断收到一个整数流:58,63,85,1000,8555,-9,-10..... 流以高速进入,可以将 int 的整个范围从 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 中是否有任何方法或规则可以实现这一目标?

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