Lua与C——扩展Lua(四)
2015-06-15 18:08
330 查看
因为Lua是可扩展的,我们可以通过编写新的C函数来扩展Lua。
先编写C函数;
再注册函数
注册单个函数:
要注册多个函数的花,lua5.1 和5.2不同
Lua中,使用 ex.add(num1,num2)就可以使用扩展的函数,这样用库表不会污染全局表
注意在lua5.1 中定义了
#define luaL_reg luaL_Reg
先编写C函数;
int add(lua_State *L) { int num1 = lua_tonumber(L, 1); int num2 = lua_tonumber(L, 2); int sum = num1+ num2; lua_pushnumber(L, sum); return 1; }
再注册函数
注册单个函数:
lua_register(L, "add", add);
要注册多个函数的花,lua5.1 和5.2不同
const luaL_Reg methods[] = { { "add", add }, { NULL, NULL } }; const char* libname = "ex";
#if LUA_VERSION_NUM > 501 lua_newtable(L); luaL_setfuncs(L, rclib, 0); lua_setglobal(L, libname); #else const luaL_Reg metafuncs[] = { { 0, 0 } }; luaL_newmetatable(L, libname); luaL_register(L, NULL, metafuncs); luaL_register(L, libname, rclib); #endif
Lua中,使用 ex.add(num1,num2)就可以使用扩展的函数,这样用库表不会污染全局表
注意在lua5.1 中定义了
#define luaL_reg luaL_Reg
相关文章推荐
- OpenWrt Web 开发 LuCI框架 lua语言
- 转 Lua标准库: table函数, 数学函数, 字符串函数/格式化/配对,
- Lua与C——调用Lua函数(三)
- Lua与C——执行Lua脚本(二)
- Lua时间转换
- Lua与C通信——Lua API(一)
- 【原】lua的table深拷贝
- lua string 库
- Lua 学习笔记三 Mac安装Lua
- Evaluate Reverse Polish Notation
- Lua脚本认知小结
- Incompatibilities with Lua 5.2
- Lua获取系统时间和时间格式化方法
- Lua中的模块与module函数
- lua--函数深入:闭合函数,局部函数,尾调用
- Lua中的字符串操作
- Lua学习 2) —— Android与Lua互调
- lua学习笔记(2)——内核入口
- lua 弱表
- lua学习笔记(1)——编译配置