我有一个数组:void * functions [n],其中n是常量。
我还有n个名为function1,function2等的函数。
此外,除了循环值之外,这些函数是相同的。
第一功能0 - > N / n,第二函数N / n - > 2 * N / n等等
如何在C中使用宏来简化此代码?
编辑:由于在循环内完成的操作都是独立的,我将循环划分为不同的部分以运行多个线程。答案 0 :(得分:0)
您可以将函数的地址分配给数组元素,然后通过调用数组
来调用该函数fx[0] = function0; // no parenthesis; address of function
fx[1] = function1;
// ...
fx[n-1] = functionn_1;
// ...
// call all functions in a loop
for (int i = 0; i < n; i++) {
fx[i]();
}