我正在用 C++ 重写一个 C 程序以利用 OO 方面的优势,因此它可以轻松支持多种设备,并且程序的一部分是表达式评估器。表达式可以有函数调用,这里是函数的结构。
typedef struct {
char *name;
int argc;
void (*func) ();
} FUNCTION;
不知何故 func 可以通过它传递可变数量的参数。
RESULT *param[10];
if (Root->Function->argc < 0) {
/* Function with variable argument list: */
/* pass number of arguments as first parameter */
Root->Function->func(Root->Result, argc, ¶m);
} else {
Root->Function->func(Root->Result, param[0], param[1], param[2], param[3], param[4], param[5], param[6],
param[7], param[8], param[9]);
}
老实说,我什至不确定如何在 C 中做到这一点。一个解释会很好。可以用 C++ 完成吗?