【发布时间】:2013-07-08 08:29:07
【问题描述】:
我有一个小的 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) != 0)
printf( "%s", lua_tostring(L, -1));
}
print 的输出总是 0。如果我把(i+1)放进去,输出总是1。我不能改变AUp的值。该值保持不变,就像在第一次调用 lua_pushnumner 和 lua_setglobal 时一样。
怎么了?函数应该会反复调用,但是AUp的值是可以改变的,所以我得更新一下,再调用lua_call。
【问题讨论】:
-
如果您检查立即推送的号码,您会找回那个号码吗?例如。
assert( lua_tonumber(L, -1) == i );?设置后检查AUp怎么样?例如。lua_getglobal(L, "AUp"); assert(lua_tonumber(L, -1) == i);