使用C中的宏来赋值t数组

时间:2014-03-16 21:43:57

标签: c multithreading macros

我有一个数组:void * functions [n],其中n是常量。

我还有n个名为function1,function2等的函数。

此外,除了循环值之外,这些函数是相同的。

第一功能0 - > N / n,第二函数N / n - > 2 * N / n等等

如何在C中使用宏来简化此代码?

编辑:由于在循环内完成的操作都是独立的,我将循环划分为不同的部分以运行多个线程。

1 个答案:

答案 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]();
}