Я работаю над виртуальной машиной, которую я хотел бы иметь Интерфейс с C. Идти другим путем и предоставить функции виртуальной машины коду C довольно просто, и я не могу осознать, что функции C доступны для виртуальной машины.
Я хотел бы иметь возможность динамически регистрировать функции C на виртуальной машине следующим образом:
vm_register(printf);
Затем на моей виртуальной машине помещаю аргументы в стек и:
call printf
Проблема в том, что не зная, как много аргументов, требуемых функции, и какого типа, я не уверен, что можно использовать указатели на функции.
Есть ли универсальный тип указателя на функцию, который можно использовать в этой ситуации? Может ли кто-нибудь направить меня в правильном направлении?