为什么调用 lua_pcall
2019-07-17 本文已影响0人
AZander
-
原理:
C和lua通过一个堆栈进行交互,lua_pcall的用途就是执行堆栈里的函数,先将lua里的函数压入堆栈,然后再调用。lua_pcall就是c里的调用lua函数的函数
-
理解举例
c和lua交互,当加载一个lua脚本文件的后,调用如下代码
iError = lua_pcall(L, 0, 0, 0); if (iError) { lua_close(L); return 1; }
- 解读:调用是相当于 把一整个lua文件的内容 当成一个function来执行
- 举例:
-
设置个全局变量a为100 ,不pcall先把整个文件load一次a是多少;再pcall一次 看看a为多少
-
结果:第一次调用a 得到的是nil ,第2次调用就可以获得100
-
参考如下 文章 https://blog.csdn.net/rain_qingtian/article/details/48573991