lua_pcall,lua_call 调用前后栈情况

简介: lua_pcall和lua_call功能一样,只是lua_pcall提供了一个可以提供错误处理函数的功能 首先压入函数 ,再依次压入参数,现在你就可以调用lua_call了,函数调用后将参数,函数都弹栈,函数返回时会将返回值依次压栈。

lua_pcall和lua_call功能一样,只是lua_pcall提供了一个可以提供错误处理函数的功能

首先压入函数 ,再依次压入参数,现在你就可以调用lua_call了,函数调用后将参数,函数都弹栈,函数返回时会将返回值依次压栈。

 

调用前堆栈情况

参数

参数

函数

 

调用后堆栈情况

返回值

 

 注意:无论在c函数里怎么调用栈,在pcall之后都会按函数的参数和返回值恢复栈

相关文章
Lua 函数
Lua 函数
163 0
Lua 函数
|
C++ 存储
Lua中调用C/C++函数 (转)
首先偶们会在C++中建立一个函数, 然后告知Lua有这个函数, 最后再执行它. 另外, 由于函数不是在Lua中定义的, 所以无法确定函数的正确性, 可能在调用过程中会出错, 因此偶们还会说说Lua出错处理的问题.
1739 0
|
C++
lua如何调用C++函数
第一步是定义函数。所有在Lua中被调用的C/C++函数将使用下面一类指针进行调用: typedef int (*lua_CFunction) (lua_State *L); 换句话说,函数必须要以Lua解释器作为唯一的参数,并且返回一个唯一的整数。
1139 0
|
C++ JavaScript 前端开发
vs如何在C++中调用Lua
最近Cocos2dx的学习卡壳了,一般的照抄代码我不想写上来,但想示例也想得我头晕...为了放松大脑调整状态于是开始学习Lua。Lua的语法学习还是比较简单的,学过javascript或者vbscript的应该很容易就能上手,那些Lua独有的特性也是比较有趣,例如不定数目的多参数函数和随意的参数返回值等。
818 0
|
安全 API Java
C中调用Lua函数
我们先来看一个简单的例子: lua_State* L = NULL;// 内部调用lua函数 double f(double x, double y) { double z; lua_getglobal(L, "f"); // 获取lua函数f lua_...
964 0