如何制作函数的多个副本并在 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 中是否有任何方法或规则可以实现这一目标?
不存在函数副本这样的东西。如果你想 运行 在多个线程中执行相同的功能,那么就这样做吧。对函数的每次调用都会有自己的传递给它的参数副本,以及自己的执行堆栈(意味着它自己的局部变量。)
假设我们有一个函数指针
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 中是否有任何方法或规则可以实现这一目标?
不存在函数副本这样的东西。如果你想 运行 在多个线程中执行相同的功能,那么就这样做吧。对函数的每次调用都会有自己的传递给它的参数副本,以及自己的执行堆栈(意味着它自己的局部变量。)