加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

lua与c++的相互调用

发布时间:2020-12-14 22:22:46 所属栏目:大数据 来源:网络整理
导读:一.?? lua调用C++ ?? ? ?在lua中是以函数指针的形式调用函数,并且所有的函数指针都必须满足如下此种类型: typedef int (*lua_CFunction) (lua_State *L); 也就是说,偶们在C++中定义函数时必须以lua_State为参数,以int为返回值才能被Lua所调用. 但是不要忘记

一.?? 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读