首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LuaC5.1-遍历所有全局值

LuaC5.1-遍历所有全局值
EN

Stack Overflow用户
提问于 2017-09-22 22:56:08
回答 1查看 608关注 0票数 1

最近,我一直在探索luac 5.1API,我想知道是否有可能循环遍历5.1API中的每个全局值,我知道在5.2 (参考here )中可以这样做,因为lua_pushglobaltable(lua_State*)是存在的。我知道有LUA_GLOBALSINDEX,但是我不知道如何将它用于这个目的。任何帮助都将不胜感激!

谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-23 00:06:49

您可以在您提到的答案中使用代码。就这么做吧:

代码语言:javascript
复制
#define lua_pushglobaltable(L) lua_pushvalue(L,LUA_GLOBALSINDEX)

这是一个完整的程序,列出了所有全局变量。如果删除该定义,则它在Lua5.2和5.3中工作。

代码语言:javascript
复制
#include <stdio.h>
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"

#define lua_pushglobaltable(L) lua_pushvalue(L,LUA_GLOBALSINDEX)

int main(void)
{
    lua_State *L=luaL_newstate();
    luaL_openlibs(L);
    lua_pushglobaltable(L);
    lua_pushnil(L);
    while (lua_next(L,-2) != 0) {
        puts(lua_tostring(L,-2));
        lua_pop(L,1);
    }
    lua_pop(L,1);
    lua_close(L);
    return 0;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46374233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档