lua学习(三)

对lua有了个初步的了解, 同事按捺不住在项目上面用了一下c api. 由于大家都不熟lua的 c api, 我也去学习一下. 这样大家可以讨论了.
5.1的 luaopen_io()不能用了, 用了一下直接挂掉. 查了一下官方的文档, 他没有说清楚.只是说不能直接调用. 不明白 
而且看了一下, lua_open()宏最好由 luaL_newstate()来代替.

首先试了一下对 全局变量的读取.
width = 100;
height = 200;

执行操作
1. 新建一个lua状态
2. open要用到的库, 可以看到栈上就多了几个表. 我open了base, string和math之后,栈上会压进四个表.猜猜有可能有一个math表, math表里面有sin,pi之类的函数或者变量.
3. 载入test.lua文件,用lua_pcall执行它.这时候width和height的值就全部确定了. 下一步是通过c来得到它们
4. lua_getglobal根据"width"名称取得width的值, 这个方法会把width的值也就是100压入栈中 :)
5. 用lua_isnumber判断得到的是否数字,如果是数字那用lua_tonumber来取得值


这个简单! 接下来是取表
BLUE = {r=100, g=0, b=1}
执行操作:
1. 新建一个lua状态
2. open要用到的库, 可以看到栈上就多了几个表. 我open了base, string和math之后,栈上会压进四个表.猜猜有可能有一个math表, math表里面有sin,pi之类的函数或者变量.
3. 载入test.lua文件,用lua_pcall执行它.
4. lua_getglobal根据"BLUE "名称取得BLUE 的值,同时把BLUE 的值,也就是一个BLUE的表压入栈中.
5. lua_pushstring把'r'压入栈中,此时栈顶元素为'r

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值