【发布时间】:2015-07-01 14:08:48
【问题描述】:
我想用一个带有 ID 和参数结构的函数创建一个函数接口。 在内部,调用函数并将结构中的参数传递给函数。返回值被传递给结构中的指针。 这个设计有哪些陷阱?有什么比 switch-case 语句更快的方法吗?
enum Id{ CALL_1, CALL_2};
struct PARM_1 { int parm1; int parm2; void* data};
struct PARM_2 { int parm1; int* parm2};
void function(int id, void* parm)
{
switch (id)
{
case CALL_1:
{
PARM_1* p = (struct PARM_1*) parm;
function_1(p->parm1, p->parm2, parm->data);
break;
}
case CALL_2:
{
PARM_2* p = (struct PARM_2*) parm;
function_2(p->parm1, p->parm2);
break;
}
default:
break;
}
}
void foo(int parm1, int parm2, void data); void barint parm1, int parm2);
【问题讨论】:
-
请编辑帖子并修正缩进。并确保您的代码编辑器设置为不使用制表符缩进,而是插入空格。
-
不需要从
void*进行转换。
标签: c