需要在函数调用时删除额外的参数

时间:2015-01-20 08:47:24

标签: c

这是我的typedef struct

//command look up table structure
typedef struct
{
    int commandCode;
    int  (*process_command) (...);
}cmdTableStruct;

使用int (*process_command) (...);我需要调用适当的函数,如果命令代码匹配,我已分配给它。

离。

static cmdTableStruct cmdTable[]=
{
 { 1123,testFunc},
 // more command in same manner
};

如果命令代码testFunc和此函数的参数只有一个,它将调用1123函数。它会调用不同的函数,但参数类型不同,参数是1。

现在在int (*process_command) (...);定义中使用stuct,它会给我一个像

这样的错误
Error:  #xx: expected a type specifier

我可以通过添加一个已知类型参数来解决此错误

喜欢

int  (*process_command) (int x,...);

但是我不想要额外的参数,我只是想要它需要一个参数并用适当的数据类型的参数调用函数。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

发表评论作为答案,你可以考虑这个:

typedef struct
{
    int commandCode;
    int  (*process_command) (void *ptr);
}cmdTableStruct;

将process_command的参数设为void *。传递任何特定情况所需的任何类型的变量地址。在每个函数中,对预期进行类型转换,复制到期望类型的局部变量并使用。