Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua-将表获取到C,更新并上传回_C_Lua - Fatal编程技术网

Lua-将表获取到C,更新并上传回

Lua-将表获取到C,更新并上传回,c,lua,C,Lua,我有一个未定义结构的Lua表(例如,用户可以在那里放置任何东西-数字、字符串等)。我需要将数据表转换成C代码,将其存储在数据文件中,然后稍后打开它并将值恢复到Lua脚本中 lua\u topointer给我数据地址,但仅此而已。没有办法从中获取数据并上传回来 如何做到这一点?最好将Lua端的数据序列化为字符串。(是的,您将丢失不可序列化的数据,如函数或用户数据)。然后您可以将该字符串保存到文件中,并在以后取消序列化 若你们想在C端这样做,你们应该遍历你们的表。你只能参考它。它有很多容易出错的样板

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

lua\u topointer
给我数据地址,但仅此而已。没有办法从中获取数据并上传回来


如何做到这一点?

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

若你们想在C端这样做,你们应该遍历你们的表。你只能参考它。它有很多容易出错的样板代码,您很难从中获得任何性能优势


查看准备使用的Lua序列化代码。

您当然可以识别、编码并在以后将引用还原为不应该/不能序列化的已知值。它可以工作,但并不总是这样。我的文件可以存储在网络上,而Lua无法访问它(或某些ftp)。@重复数据消除器数据可能在其他环境中未被序列化。在这种情况下,你不能相信存储的引用,因为它们根本不存在。@Seagull:我从来没有说过你应该把它们编码成原始指针之类的东西。使用适当的符号表示它们,这些符号必须映射回接收端。你就这么做了吗?