The*_*ang 2 c lua stack virtual-machine
以lua的简单C函数为例:
int luacfunc(lua_State *L)
{
printf("%g\n", lua_tonumber(L, 1) + lua_tonumber(L, 2));
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,参数显示为索引1和2.由于正数表示堆栈自下而上,这意味着参数位于堆栈的底部,而不是顶部.
为什么会这样?它是否需要在每个函数调用上移动整个堆栈以为参数腾出空间?