【发布时间】:2015-03-04 22:05:38
【问题描述】:
我知道这听起来很科幻,但我真的想调用一个函数 x 次,方法是使用指向它的函数指针数组,而不涉及循环或任何可能减慢目标程序的东西。这可能吗?如果可以,具体怎么做?
【问题讨论】:
-
当然有可能,但是为什么需要一个函数指针数组来调用函数 x 次呢?只需调用 x 次即可。
-
您的编辑听起来像是一种微优化,在大多数实际场景中(至少在现代 CPU 上)不太可能产生影响。
-
复制函数指针不会使函数线程安全。该函数仍然是一个函数,它的静态存储仍然在一个地方。如果函数已经是线程安全的,那么你不需要做任何事情,只需多线程即可。编辑:谷歌为 SPMD 或 OpenCL
-
好吧,现在我完全糊涂了。您从 “运行函数 x 次而不是循环” 开始,然后移至 “同时调用许多函数”,然后移至 “函数 ... 是只调用一次”。我认为你需要决定你到底想做什么,然后编辑问题来描述它。
-
你对循环的痴迷是什么?在所有情况下,函数 body 的执行成本(cpu 时间)都比调用者的 invocation 多。你真的想要 parallellism 吗? (在前一个函数调用返回之前调用一个函数)