Lua C API 遍历table

9 篇文章 0 订阅

lua_getglobal(L, t);
int index = lua_gettop(L);
lua_pushnil(L);
while (lua_next(L, index)) {
    /* 此时栈上 -1 处为 value, -2 处为 key */
    lua_pop(L, 1);
}

lua_next 函数针对 -2 处(参数指定)的 Table 进行遍历。弹出 -1 处(栈顶)的值作为上一个 key(为 nil 时视为请求首个 key),压入 Table 中的下一个 key 和 value。返回值表示是否存在下一个 key。

另外在循环中处理值时要记得随时清理栈,否则 Table 就不在 -2 了。(也可以考虑在 lua_getglobal 后用lua_gettop 存下 Table 的正数索引。)


Study:

遍历Table参考: https://www.cnblogs.com/hangj/p/5192588.html 

API讲解参考:https://www.cnblogs.com/lsgxeva/

Windows下的设置参考:https://www.cnblogs.com/fkpj/p/4495913.html

 C/C++编写Lua扩展插件:https://blog.csdn.net/yue7603835/article/details/41878905

互调参考实例:https://shaomeng.blog.csdn.net/article/details/82945645

Lua与C++相互调用参考:https://blog.csdn.net/wangbin_jxust/article/details/38794111

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值