结构中的函数指针,但在C中具有不同原型的函数

use*_*265 5 c struct pointers prototype function

假设我有功能:

void func1(int x)
{
    ....
}

void func2(int x, int y)
{
    ....
}

void func3(int x, int y, int z)
{
    ....
}
Run Code Online (Sandbox Code Playgroud)

并说我想在结构中有一个函数指针:

例如

typedef struct{
     char *ename;
     char **pname;
    < and here I want to have a function pointer> ??
} Example;

Example ex[3];
Run Code Online (Sandbox Code Playgroud)

现在,我想将ex [3]数组填充为:

ex[0].ename = "X0";
ex[0].pname[0]="A0";
ex[0].pname[1]="B0";
ex[0].<function pointer to func1() > ??


ex[1].ename = "X1";
ex[1].pname[0]="A1";
ex[1].pname[1]="B1";
ex[1].<function pointer to func2() > ??
Run Code Online (Sandbox Code Playgroud)

... 等等...

有可能创造这样的东西吗?请帮我解决一下这个.谢谢.

cni*_*tar 7

我会使用一个union函数指针:

union {
    void (*fun1)(int);
    void (*fun2)(int, int);
} fptr;
Run Code Online (Sandbox Code Playgroud)

您还需要在结构中使用一个字段来判断使用了哪个字段.