background image

解析调用

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,然后将

                   找软件资料,就到一览软件文库

http://wk.yl1001.com/rj/