lua与C交互(2):获取lua文件中全局变量的值
cc代码#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include "lua.hpp"#include "lauxlib.h"#include "lualib.h"static void stackDump(lua_S...
·
cc代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include "lua.hpp"
#include "lauxlib.h"
#include "lualib.h"
static void stackDump(lua_State* L)
{
static int count = 0;
printf("begin dump lua stack:%d\n", count);
int top = lua_gettop(L);
for (int i = top; i > 0; --i)
{
int t = lua_type(L, i);
switch (t)
{
case LUA_TSTRING:
printf("%s\n", lua_tostring(L, i));
break;
case LUA_TBOOLEAN:
printf(lua_toboolean(L, i) ? "true\n" : "false\n");
break;
case LUA_TNUMBER:
printf("%g\n", lua_tonumber(L, i));
break;
default:
printf("%s\n", lua_typename(L, t));
break;
}
}
++count;
}
int main()
{
lua_State* L = luaL_newstate(); /* create state */
if (L == NULL) {
printf("lua state build error.\n");
return 1;
}
luaL_openlibs(L);
luaL_dofile(L, "test.lua");
lua_getglobal(L, "age"); // 将lua中全局变量存放到lua栈顶中(这个栈是C与lua交互的通道)
lua_getglobal(L, "name");
stackDump(L);
std::cin.get();
lua_close(L);
return 0;
}
lua代码:
print("print from test lua.")
name = "linxing"
age = 19

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)