解析调用
Lua 函数使用方法
调用
Lua 函数使用方法是本文要介绍的内容,本教程涵盖了 Lua5.1。在 Lua 的每一个版本中
都有一些非常不同之处。下面的示例代码将不能在老版本的
Lua 下运行。这篇文章将教你如
何在
Lua 中定义一个函数,然后在 C/C++程序中调用它。同时,我们将学习到参数传递,返
回值,以及处理全局变量。
你的第一个
Lua 函数
在
Lua 中定义函数是相当简单的。Lua 函数以关键字"function"开头,后面跟随函数名,然后
是参数列表。函数定义以关键字
"end"结束。Lua 函数能够接受多个参数,而且可以返回多个
参数。
下面是一个实现两个数相加并返回结果的
Lua 函数。我们将它保存为"add.lua"文件。
1. -- add two numbersfunction add ( x, y )return x + yend
在
Lua 入门中,我们已经知道调用 luaL_dofile()就是执行脚本。因为在本文中我们只定义了
一个函数,故只需简单地调用
luaL_dofile()函数就能执行 add 函数。
我在前面已经说过,
Lua 函数能够接受多个参数,返回多个结果。这是用栈来实现的。
为了调用一个
Lua 函数,首先需要将函数压入栈中。再将参数压入。然后,调用 lua_call()去
调用
Lua 函数。函数调用完成之后,返回值存在于栈中。所有这些步骤将被展示在 luaadd()函
数定义中。
调用
lua_getglobal()将 add()函数压入栈中。
调用
lua_pushnumber()将第一个参数 x 压入栈中。
同样,调用
lua_pushnumber()将第二个参数 y 压入栈中。
调用
lua_call(),其参数的意思是两个参数,一个返回值。
现在,我们可以利用
lua_tointeger()获得整型返回值。
最后,调用
lua_pop()将值从栈中移出。
保存文件为
luaadd.cpp。如果你直接使用 C 而不是 C++,将文件名改为 luaadd.c,然后将
找软件资料,就到一览软件文库