求帮忙啊 C语言如何调用指定目录下的LUA文件的 全局变量(变量名CCC)
发布网友
发布时间:2022-05-01 13:30
我来回答
共2个回答
热心网友
时间:2023-11-06 05:57
首先调用变量这个说法本身就是很奇怪,如果说LUA的函数可以说是变量的话,那么你的意思就是调用CCC这个函数的,但是函数不可能保存角色坐标,所以你这个事实上只是一个变量。很可能是个table,那么应该叫访问这个变量而不是调用。
C里面访问LUA的数值变量和访问table的方法是不一样的,访问table还要知道table的结构才能访问
以下为我的模拟代码,仅供参考
lua_State* L = luaL_newstate();
luaL_openlibs(L);
luaL_dostring(L,
"CCC = {}"
"CCC.position = {10,20}"
);
lua_getglobal(L, "CCC");//将CCC压入栈顶
lua_getfield(L, -1, "position");//对栈顶进行操作,将position压入栈顶
lua_pushnumber(L, 1);//索引1
lua_gettable(L, -2);
int x = luaL_checkinteger(L,-1);
lua_pushnumber(L, 2);//索引2
lua_gettable(L, -3);
int y = luaL_checkinteger(L,-1);
lua_pop(L, -1);
printf("x:%d y:%d\n",x,y);
lua_close(L);
热心网友
时间:2023-11-06 05:57
C语言对文件的操作都是通过库函数或者系统调用来实现的,不太明白具体是想表达什么!
热心网友
时间:2023-10-15 04:59
首先调用变量这个说法本身就是很奇怪,如果说LUA的函数可以说是变量的话,那么你的意思就是调用CCC这个函数的,但是函数不可能保存角色坐标,所以你这个事实上只是一个变量。很可能是个table,那么应该叫访问这个变量而不是调用。
C里面访问LUA的数值变量和访问table的方法是不一样的,访问table还要知道table的结构才能访问
以下为我的模拟代码,仅供参考
lua_State* L = luaL_newstate();
luaL_openlibs(L);
luaL_dostring(L,
"CCC = {}"
"CCC.position = {10,20}"
);
lua_getglobal(L, "CCC");//将CCC压入栈顶
lua_getfield(L, -1, "position");//对栈顶进行操作,将position压入栈顶
lua_pushnumber(L, 1);//索引1
lua_gettable(L, -2);
int x = luaL_checkinteger(L,-1);
lua_pushnumber(L, 2);//索引2
lua_gettable(L, -3);
int y = luaL_checkinteger(L,-1);
lua_pop(L, -1);
printf("x:%d y:%d\n",x,y);
lua_close(L);
热心网友
时间:2023-10-15 04:59
C语言对文件的操作都是通过库函数或者系统调用来实现的,不太明白具体是想表达什么!
热心网友
时间:2023-10-15 04:59
首先调用变量这个说法本身就是很奇怪,如果说LUA的函数可以说是变量的话,那么你的意思就是调用CCC这个函数的,但是函数不可能保存角色坐标,所以你这个事实上只是一个变量。很可能是个table,那么应该叫访问这个变量而不是调用。
C里面访问LUA的数值变量和访问table的方法是不一样的,访问table还要知道table的结构才能访问
以下为我的模拟代码,仅供参考
lua_State* L = luaL_newstate();
luaL_openlibs(L);
luaL_dostring(L,
"CCC = {}"
"CCC.position = {10,20}"
);
lua_getglobal(L, "CCC");//将CCC压入栈顶
lua_getfield(L, -1, "position");//对栈顶进行操作,将position压入栈顶
lua_pushnumber(L, 1);//索引1
lua_gettable(L, -2);
int x = luaL_checkinteger(L,-1);
lua_pushnumber(L, 2);//索引2
lua_gettable(L, -3);
int y = luaL_checkinteger(L,-1);
lua_pop(L, -1);
printf("x:%d y:%d\n",x,y);
lua_close(L);
热心网友
时间:2023-10-15 04:59
C语言对文件的操作都是通过库函数或者系统调用来实现的,不太明白具体是想表达什么!