Lua从C添加/更改全局变量
发布时间:2020-12-14 21:49:37 所属栏目:大数据 来源:网络整理
导读:我有一个小的Lua脚本: function g () print( AUp);end 从C我加载脚本,添加一个名为AUp的变量,让它运行几百次. for( i=0; i2000; i++){ num= i; lua_pushnumber( L,i); lua_setglobal( L,"AUp"); lua_getglobal( L,"g"); if (lua_call( L,0) != 0) printf( "
我有一个小的Lua脚本:
function g () print( AUp); end 从C我加载脚本,添加一个名为AUp的变量,让它运行几百次. for( i=0; i<2000; i++) { num= i; lua_pushnumber( L,i); lua_setglobal( L,"AUp"); lua_getglobal( L,"g"); if (lua_call( L,0) != 0) printf( "%s",lua_tostring(L,-1)); } 始终是打印输出为0.如果我输入(i 1),输出始终为1.我无法更改AUp的值.该值保持不变,就像第一次调用lua_pushnumner和lua_setglobal时一样. 怎么了?该函数应该一次又一次地调用,但是AUp的值可以改变,所以我必须在调用lua_call之前更新它. 解决方法
我不确定,但你试过了:
?1.在Lua脚本中定义AUp初始值. ?2.在C循环期间清理堆栈值. ? 编辑: for(i = 0; i<200; i++) { lua_pushnumber(l,i); lua_setglobal(l,"foo"); lua_getglobal(l,"test_f"); if (lua_pcall(l,0) != 0) { printf( "%s",lua_tostring(l,-1)); } } 和 function test_f() print(foo) end 使用Lua 5.1.5可以正常工作 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |