• 做一个幸福的人,读书,旅行,努力工作,关心身体和心情。
  • 不管有没有人爱,也要努力做一个可爱的人。不埋怨谁,不嘲笑谁,也不羡慕谁,阳光下灿烂,风雨中奔跑,做自己的梦,走自己的路。

C 语言读取与设置 Lua全局变量

Lua编程 lcq 5年前 (2013-08-19) 568次浏览 0个评论

假设有一份Lua配置表,这份配置表的文件名为LuaConfigure.lua里面有如下配置。

SCREEN_WIDTH = 320;

SCREEN_HEIGHT = 240;

如果C语言怎样获取与改变这些配置?

根据上一篇“Lua与C语言的交互原理”,我们大概可以猜测C语言读取Lua全局变量的过程如下:Lua Space将Lua的全局变量压入Virtual Stack,然后C Space读取Virtual Stack的变量。这就完成了C 语言读取Lua全局变量的过程。在Lua和C的交互中,Lua无法看到和操作虚拟堆栈,仅在C语言中有操作堆栈的权利,因此前面说到的两步全都是在C语言中完成的。我们看一个简单的例子。

LuaTest.lua源码

C代码(跟后面的代码一起给)

Lua中对堆栈的操作都是通过索引来进行的,索引为1表示从栈底数第一个元素,索引为2表示从栈底数第二个元素;同样也可以使用负数从栈顶开始计算,-1表示从栈顶数第一个元素,-2表示从栈顶数第二个元素。更多堆栈的操作函数请参考lua的官方手册http://www.lua.org/manual/5.2/manual.html。 同样从堆栈中获取元素,除了我们使用的lua_tonumber之外,还有lua_tolstring,lua_toboolean等。

如果需要使用C语言修改Lua的全局变量,也很简单,代码如下:

运行结果如下:


乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C 语言读取与设置 Lua全局变量
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址