ポインターによっても参照されるコールバック関数に、ポインターによって可変数の引数を渡したいと考えています。参照渡しできる引数のリストを作成する方法はありますか?
元:
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
}
}
これまでのところ、これは 1 つの引数でうまく機能しますが、構造体変数の初期化で複数の引数のリストを渡す方法がわかりません。これは、va_list を使用するビルダー関数を使用しなくても可能ですか?