4、C++程序读取Lua的Table——2
系列文章
在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 : LuaTable2
LuaTable2 : LuaTable2.cpp
$(CC) -o $@ $(CPPFLAG) $(LDFLAG) $<
测试环境
类型 | 值 |
---|---|
操作系统 | Ubuntu 10.10 |
lua | 5.1.4 |