Too*_*204 3 c foreach function
我想创建一个函数,该函数需要一个数组和一个函数,并在数组中的每个元素上调用该函数
我一直在寻找解决方案,但它们似乎都使用宏,而如果可能的话,我希望使用函数。
我正在寻找可以像下面这样工作的东西
void print_string()
{
printf("%d\n", num);
}
int array[] = { 1, 2, 3, 4, NULL }; // So the foreach function knows when it has reached the end
for_each_function(array, print_number);
Run Code Online (Sandbox Code Playgroud)
输出:
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
编辑:它需要是通用的,因此可能需要一个宏
您可能应该使用函数指针。这样的使用函数指针的完整实现就是这样。
#include <stdio.h>
void for_each(int * arr, int size, void (*fun)(int))
{
for (int i = 0; i < size; i++)
{
(*fun)(arr[i]);
}
}
void print_num(int num)
{
printf("%d\n", num);
}
int main()
{
int array [] = {1, 2, 3, 4};
for_each(array, 4, print_num);
return 0;
}
Run Code Online (Sandbox Code Playgroud)