4、C++程序读取Lua的Table——2

来源:互联网 发布:黄金外汇行情软件 编辑:程序博客网 时间:2024/06/07 02:23

    在Lua中存在两种访问Table成员的方法。一种是Table.ItemNamed,这个我们在《C程序操作Lua的Table——1》中介绍过了。下来我们来介绍另一种访问Table成员的方法——Table[index]。
    也简单,废话少说,上代码。

代码

LuaTable2.lua

 luat_Test = {123, 456}

LuaTable2.cpp

#include <lua.hpp>int main (int argc, char * argv[]){    lua_State* L = lua_open();    luaopen_base(L);    luaL_dofile(L, "LuaTable2.lua");    lua_getglobal(L, "luat_Test");            // 将luat_Test压入栈    lua_rawgeti(L, -1, 2);                    // 将luat_Test[2]压入栈    printf("%d\n", (int)lua_tonumber(L, -1)); // 取出luat_Test[2]的值并打印。    lua_close(L);}

makefile

CPPFLAG=`pkg-config --cflags lua5.1`LDFLAG=`pkg-config --libs lua5.1`CC=g++all : LuaTable2LuaTable2 : LuaTable2.cpp    $(CC) -o $@ $(CPPFLAG) $(LDFLAG) $<    

测试环境

类型 值 操作系统 Ubuntu 10.10 lua 5.1.4

运行结果

这里写图片描述