使用C中的一些通用函数调用来调用多个函数

时间:2014-03-19 06:55:58

标签: c function pointers generics

我希望能够使用单个泛型函数调用来调用多个函数。

目前我正在尝试实现这样的目标:

main()
{
    generic();
}

A(){.....};

B(){.....};

C(){.....};

我从main()调用一些泛型函数,而这些泛函函数应该能够调用函数:A(),B(),C()。

如何在C中实现此功能?

3 个答案:

答案 0 :(得分:2)

您可以使用函数指针来完成。请参考"如何在C"

中使用函数指针

答案 1 :(得分:0)

如果要调用的所有函数都具有相同的原型,则可以使用函数指针。

答案 2 :(得分:0)

你必须使用如下的函数指针。

#include<stdio.h>
void A(void);
void B(void);
void C(void);
typedef void (*foo_ptr_t)( void );
foo_ptr_t foo_ptr_array[3]; //fucntion pointers of type foo_ptr_t
main()
{
    int i = 0;
    foo_ptr_array[0] = A; //assign function to each function pointer
    foo_ptr_array[1] = B;
    foo_ptr_array[2] = C;
    for(i = 0; i<3; i++)
        foo_ptr_array[i](); //call functions using function pointer
}

void A()
{
    printf("We are in A\n");
}

void B()
{
    printf("We are in B\n");
}

void C()
{
    printf("We are in C\n");
}