c++ - lua_setfield 有什么替代方法吗? (Lua C/C++)

标签 c++ lua

我正在使用 lua C 函数,但无法使用 lua_setfield。我需要一些基本上可以完成 lua_setfield 功能的东西。我可以使用除 lua_setfield 之外的任何其他 lua 函数。有什么帮助吗?

最佳答案

如果i为正数(即绝对值),则lua_setfield(L,i,k)相当于

lua_pushstring(L,k);
lua_insert(L,-2);
lua_settable(L,i);

如果i为负数(即相对),则lua_setfield(L,i,k)相当于

lua_pushstring(L,k);
lua_insert(L,-2);
lua_settable(L,i-1);

下面的代码结合了这两者:

lua_pushstring(L,k);
lua_insert(L,-2);
lua_settable(L,i-(i<0));

关于c++ - lua_setfield 有什么替代方法吗? (Lua C/C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48082405/

相关文章:

c++ - 错误 "requested alignment is not an integer constant"

c++ - 从 Visual Studio 解决方案生成 Make 文件(用于 GCC)

c# - LuaInterface - 在 .Net 3.5/.Net 4.0 下编译 FileLoadException

c++ - 返回 C++ 中的映射以用作 lua 中的表

lua - 有没有一种方法可以迭代用户数据,就像对和 ipairs 对表所做的那样?

Lua脚本在redis上插入100000个随机键

c++ - 为什么在这里需要两次函数 Ellipse(...) 来绘制椭圆?

C++ 调用 getenv ("LINES") 或 getenv ("COLUMNS") 在 Xcode 中运行良好,在终端中运行时出现段错误

c++ - 如何维护类成员的顺序并仍然有一个有效的构造函数

java - 动态加载 Java 类与实现 LUA