에서 전역 변수를 변경/추가 : 나는 스크립트를로드 C에서루아 나는 작은 루아 스크립트가 C
function g()
print(AUp);
end
는, 이름 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));
}
인쇄물 출력은 항상 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); ' – greatwolf