extern "C" void call_func(void (*ptr)(int a), int a); extern "C" void func(int arg) { } int main(int argc, char **argv) { call_func(func, 42); return 0; }