c - Lua - 将表获取到 C,更新它并将其上传回来

标签 c lua

我的 Lua 表具有未定义的结构(例如,用户可以在其中放置任何内容 - 数字、字符串等)。我需要将数据表转换为 C 代码,将其存储在数据文件中,然后一段时间后打开它并将值恢复到 Lua 脚本中。

lua_topointer 获取我的数据地址,但仅此而已。无法从中获取数据并将其上传回来。

如何做到这一点?

最佳答案

在 Lua 端以字符串形式序列化数据不是更好。 (是的,您将丢失不可序列化的数据,例如函数或用户数据)。然后您可以将该字符串保存到文件中,并稍后反序列化。

如果你想在C端这样做,你应该遍历你的 table 。您只能引用它。这是很多容易出错的样板代码,而且您几乎不会从中获得任何性能优势。

看看http://lua-users.org/wiki/TableSerialization即可使用的 Lua 序列化代码。

关于c - Lua - 将表获取到 C,更新它并将其上传回来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22881287/

相关文章:

c++ - 为什么从 C++ 应用程序调用 luazip 时不提取文件?

c - 尝试使用自己的 strcpy 并复制数组元素不起作用?

c - 堆上的函数体

c++ - 与非指针相比,char 指针初始化?会发生什么

c++ - 如何使用 C++ 在 LUA 中编写具有对话和菜单的交互式 NPC 脚本?

lua - 如何在异星工厂 mod Lua 脚本中获取本地化字符串?

macos - 如何将 Wireshark Lua 解析器脚本移植到 Mac OSX?

c - fscanf 两行数据,执行计算,打印结果,fscanf 接下来的两行,在一个循环中?

无法弄清楚这个循环行为

c++ - 我想在 C++ 项目中包含一种脚本语言。 Lua 与 Bison/Yacc