这是我的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,...);
但是我不想要额外的参数,我只是想要它需要一个参数并用适当的数据类型的参数调用函数。
有什么建议吗?
答案 0 :(得分:1)
发表评论作为答案,你可以考虑这个:
typedef struct
{
int commandCode;
int (*process_command) (void *ptr);
}cmdTableStruct;
将process_command的参数设为void *
。传递任何特定情况所需的任何类型的变量地址。在每个函数中,对预期进行类型转换,复制到期望类型的局部变量并使用。