将Lua中的全局变量从“全局”更改为C

用户名

如果从C重置此全局字段,是否可以在整个.lua文件中更改全局字段的值?

这可能是lua文件:

GlobalVar   = 123      

Table1 = {ID = 1,   Val = GlobalVar}      -- Val = 123

现在,如果我通过Lua的C-API进行呼叫...

luaL_loadfile(lua, "lua-file" ...

lua_pushstring(lua, "321");
lua_setglobal(lua, "GlobalVar");

这只会将“ GlobalVar”更改为321 ,而不会将“ Table1”的“ Val”更改为

似乎首次加载.lua文件时,GlobalVar初始值已复制到Table1。

有没有办法更新整个lua文件?

迈克·安德鲁斯

正如@Youka在评论中所描述的那样,您无法执行此操作,因为该值是在初始化时复制的Table1如果您正在设置全局变量,然后运行lua代码一次,则可以在Lua文件中有条件地初始化全局变量:

if GlobalVar == nil then GlobalVar = 123 end

Table1 = {ID = 1,   Val = GlobalVar}      -- Val = 123

这使您有机会使用来从C建立全局优先级lua_setglobal,或者接受默认值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

Dart中的全局变量

来自分类Dev

Scala中的全局变量

来自分类Dev

无法在C中修改全局变量

来自分类Dev

遍历C ++中的所有Lua全局变量

来自分类Dev

全局变量的顺序会更改C ++ / OpenGL中的性能

来自分类Dev

多个文件中的C ++全局变量

来自分类Dev

在LUA中的函数内声明全局变量

来自分类Dev

在C中操纵全局变量

来自分类Dev

在C中读取python的全局变量

来自分类Dev

在函数JS中更改全局变量

来自分类Dev

目标c中的Swift全局变量和全局函数

来自分类Dev

更改常量全局变量

来自分类Dev

require语句覆盖lua中的全局变量

来自分类Dev

Erlang中的全局变量

来自分类Dev

如何使用函数将值更改为作用域中的全局变量?(“控制器为”)

来自分类Dev

C库中的全局变量

来自分类Dev

访问lua中的全局变量

来自分类Dev

C ++类中的静态全局变量

来自分类Dev

在Lua中为全局变量分配功能

来自分类Dev

在C ++中为全局变量赋值

来自分类Dev

全局变量在C中丢失数据?

来自分类Dev

如何在C中将全局变量更改为局部变量?

来自分类Dev

遍历C ++中的所有Lua全局变量

来自分类Dev

全局变量的顺序会更改C ++ / OpenGL中的性能

来自分类Dev

无法在C ++中定义全局变量

来自分类Dev

C库中的全局变量

来自分类Dev

更改全局变量

来自分类Dev

Python - 将局部变量更改为全局变量

来自分类Dev

C : 将 PID 存储在全局变量中