Lua脚本语言学习笔记(3)

在c或cpp中调用Lua脚本中的函数

1.Lua函数也是一种数据类型。要调用Lua的函数,首先要把函数放到堆栈上。

2.把函数所需要的参数放到堆栈上。

3.调用lua_call调用函数。

4.函数调用后,会把参数弹出,然后把函数返回值放到堆栈上。

5.在main.cpp中

double a,b,ave;
    a=10.09;
    b=31.123;

lua_getglobal(L,"average");                      //把函数放到堆栈上
    if (lua_isfunction(L,-1) == 1)                    //判断栈顶元素是不是函数
    {
        lua_pushnumber(L,a);                          //把a放到栈顶
        lua_pushnumber(L,b);                          //把b放到栈顶
        lua_call(L,2,1);
        //调用average函数
        //第二个参数是被放到堆栈上的参数个数
        //第三个参数是函数返回参数的个数(lua函数可以返回多个值)
        //调用函数后,参数会自动弹出,并把函数返回值放在栈上
        ave=lua_tonumber(L,-1);
    }
    lua_pop(L,1);
    cout<<"a和b平均值为"<<ave<<endl;

6.在test.lua中

function average(a,b)
 return (a+b)/2
end;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/5aab37d1acaba482fee15fa68ba72812.html