Возможно ли что-то подобное в C?
#include <stdio.h>
void print_str(char *str) {
printf(str);
}
int main() {
void (*f_ptr)() = print_str,"hello world";
f_ptr();
}
//see "hello world" on stdout
Короче говоря, я хотел бы иметь указатель на функцию, которая "хранит" аргументы. Дело в том, что указатель на функцию можно использовать позже, без ссылки на исходные данные.
Я мог бы использовать что-то вроде этого, чтобы связать указатель функции и ссылку на аргумент
struct f_ptr {
void (*f)();
void *data;
}
void exec_f_ptr(f_ptr *data) {
data->f(data->data):
}
но это было бы не так элегантно, как простой вызов указателя функции с аргументом внутри.