在内嵌的lua代码中,想要实现以下功能:
function callback(n)
print("function callback " .. n);
end;
save_callback(callback, "aaa")
invoke_callback() -- 这里打印出function callback aaa
save_callback(function(n)
print("anonymous function callback " .. n);
end
, 1)
invoke_callback() -- 这里打印出anonymous function callback 1
即:save_callback函数传入回调函数对象和1个参数,然后在任意时刻使用保存的参数和函数对象进行回调。
以下是实现的C代码:
#include <lua.h>
#include <lauxlib.h>
int callback_indicie;
int param_indicie;
/* by superarhow, 2014/03/04 */
int save_callback(lua_State* L)
{
param_indicie = lua_ref(L, 1);
callback_indicie = lua_ref(L, 1);
return 0;
}
int invoke_callback(lua_State* L)
{
lu