假设我们有一个函数指针
int (*functionPtr)(int);
functionPtr = &doSomething;
假设我一直收到整数流:58,63,85,1000,8555,-9,-10 ..... 流以高速进入,并且可以将int的整个范围从INT_MIN扩展到INT_MAX。
如果我一个接一个地调用它,事情就会变得非常缓慢:
int result = (*functionPtr)(intvar)
当然,在代码内部,Id希望做的是能够制作functionPtr指向的函数的N个副本并将这些N个副本的指针保存在数组中。
然后,我想使用如下调用格式同时并异步调用这些副本:
(*functionPointer[N])(intvar) //Syntax might be little off, but you get the idea.
在C中是否有任何方法或学科来实现这一目标?
答案 0 :(得分:3)
没有像函数副本这样的东西。如果要在多个线程中运行相同的函数,则只需执行此操作即可。每次对该函数的调用都将拥有传递给它的参数的副本,以及其自身的执行堆栈(意味着其自身的局部变量)。