#include typedef int (*lua_closure_t)(int, int); int call_closure(lua_closure_t lua_closure) { return lua_closure(12, 24) * 2; } typedef void (*lua_hello_world_t)(); void call_hello_world(lua_hello_world_t lua_closure) { lua_closure(); } typedef int (*lua_closure_with_pointer_t)(int, int*); int call_closure_with_pointer(lua_closure_with_pointer_t lua_closure) { int b = 24; return lua_closure(12, &b) * 2; }