你应该是想说C和lua交互吧 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_pcall
回答
第一次调用是相当于 把一整个lua文件的内容 当成一个function来执行 你可以试一下 lua 设置个全局变量a为100 先把整个文件load一次 读下看看 a为多少 再pcall一次 看看a为多少就知道了 第一次调用a 得到的是nil 但是第2次调用就可以获得100了