您的位置:首页 > 编程语言 > Lua

lua调用c函数

2013-07-12 11:55 281 查看
lua调用C函数和C调用lua函数是使用相同类型的栈来交互。

lua调用C使用的栈不是全局变量,每一个函数都有它自己的私有栈。当lua调用C函数的时候 第一个参数总是在栈的index=1的位置。

lua中注册C函数必须有相同的原型:typedef int (*lua_CFunction) (lua_State* L);

当lua调用C函数的时候,lua会把传入的参数全部压栈,然后在C函数中取出所有的参数,根据参数去获得所需要的结果,并把函数的返回值压栈,然后再压入返回值的个数。函数在将返回值入栈之前不需要清理栈,函数返回后,lua会自动的清理除栈中返回结果下面的所有的内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: