一. lua调用C++
在lua中是以函数指针的形式调用函数,并且所有的函数指针都必须满足如下此种类型:
typedef int (*lua_CFunction) (lua_State *L);
也就是说,偶们在C++中定义函数时必须以lua_State为参数,以int为返回值才能被Lua所调用. 但是不要忘记了,偶们的lua_State是支持栈的,所以通过栈可以传递无穷个参数,大小只受内存大小限制. 而返回的int值也只是指返回值的个数真正的返回值都存储在lua_State的栈中. 偶们通常的做法是做一个wrapper,把所有需要调用的函数都wrap一下,这样就可以调用任意的函数了.
脚本为
avg,sum = average(10,20,30,40,50)
print("The average is ",avg)
print("The sum is ",sum)
二. C++调用lua
脚本为:
-- add two numbers
function add ( x,y )
return x + y + 2
end
z = 6
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。