如何将 Lua 表作为参数推送?
我们可能希望将Lua表作为参数推送到使用Lua作为嵌入式语言的C++编写的代码中,在这种情况下,我们需要利用Lua库为我们提供的不同API函数。
示例
Lua代码将类似于下面显示的代码-
a = {
numb = 10,
create = function(a)
print(a);
end,
increment = function(self)
--self.numb = 11;
print(self.numb);
end,
decrement = function(self,i)
self.numb = self.numb-i;
print(self.numb);
end
};
b = a;调用Lua函数的C++代码将如下所示-
luaL_openlibs(L);
luaL_dofile (L,"main.lua");
lua_getglobal(L, "a");
lua_getfield(L, -1, "increment");
lua_pushvalue(L,-2); //获取表a作为参数
lua_pcall(L ,1,0,0);
printf(" \nI am done with Lua in C++.\n");
lua_close(L);在上面的代码中,对lua_pushvalue(L,-2)的调用发挥了神奇的作用,因为它使我们能够将表a作为参数传递。
输出结果
11 I am done with Lua in C++
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短