C语言模块回调Lua函数的两种方法
lua和C通过虚拟栈这种交互方式简单而又可靠,缺点就是C做栈平衡稍微会多写一点代码。今天分享学到的C模块回调Lua函数的两种方法,都是炒冷饭,大侠勿喷。
1.C保存函数对象
C模块可以通过注册表保存Lua里面的对象,等适当时候取出再调用即可。
staticintlua_callback=LUA_REFNIL;
staticintsetnotify(lua_State*L) { lua_callback=luaL_ref(L,LUA_REGISTRYINDEX); return0; }
staticinttestnotify(lua_State*L) { lua_rawgeti(L,LUA_REGISTRYINDEX,lua_callback); lua_call(L,0,0); }
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下