我希望通过指针将可变数量的参数传递给也被指针引用的回调函数。有什么方法可以创建一个可以通过引用传递的参数列表?
前任:
typedef struct MENUELEMENT
{
void* OK_func; void* OK_args;
} menuElement_t;
menuElement_t* curMenuElement;
menuElement_t menu[] =
{
//First Menu Element
(void*)menuDisplayText, (void*)("Test", (char*)&lcdBuffer[0]) //menuDisplayText is a function that takes two arguments
//Second Menu Element
(void*)menuDisplayVal, (void*)&value[0] //menuDisplayVal is a function that takes one argument
};
void loop() //Main Loop - just an example of how the function pointed to by curMenuElement is executed
{
curMenuElement = &menu[0];
if(KP_OK)
{
(*reinterpret_cast<void (*)(...)>(curMenuElement->OK_func))(curMenuElement->OK_args); //General template for function pointed to at OK_func with OK_args
}
}
到目前为止,这适用于一个参数,但是我无法弄清楚如何在 struct 变量的初始化中传递多个参数的列表。这甚至可能无需使用使用 va_list 的构建器函数吗?