本篇内容介绍了“C/C++中怎么用Lua函数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.简介偶们这次主要说说怎么由Lua定义函数, 然后在C或者C++中调用. 这里偶们暂不涉及C++的对象问题, 只讨论调用函数的参数, 返回值和全局变量的使用.2.这里偶们在e12.lua里先定义一个简单的add(), x,y为加法的两个参数,return 直接返回相加后的结果.例e12.lua在前一次里, 偶们说到 lua_dofile() 可以直接在C中执行lua文件. 因为偶们这个程序里只定义了一个add()函数, 所以程序执行后并不直接结果, 效果相当于在C中定义了一个函数一样.Lua的函数可以有多个参数, 也可以有多个返回值, 这都是由栈(stack)实现的.需要调用一个函数时, 就把这个函数压入栈, 然后顺序压入所有参数, 然后用lua_call()调用这个函数. 函数返回后, 返回值也是存放在栈中. 这个过程和汇编执行函数调用的过程是一样的.例e13.cpp 是一个调用上面的Lua函数的例子程序说明:main中过程偶们上次已经说过了, 所以这次只说说luaadd的过程* 首先用lua_getglobal()把add函数压栈* 然后用lua_pushnumber()依次把x,y压栈* 然后调用lua_call(), 并且告诉程序偶们有两个参数一个返回值* 接着偶们从栈顶取回返回值, 用lua_tonumber()* ***偶们用lua_pop()把返回值清掉运行结果:The sum is 25编译方法Linux下把程序存成e13.cppg++ e13.cpp -llua -llualib -o e13./e13VC下编译方法* 首先建立一个空的Win32 Console Application Project* 把e13.cpp加入工程中* 点project setting,然后设置link选项, 再加上lua.lib lualib.lib两个额外的库3.全局变量上面偶们用到了lua_getglobal()但并没有详细讲, 这里偶们再举两个小例子来说下全局变量lua_getglobal()的作用就是把lua中全局变量的值压入栈lua_getglobal(L, “z”);z = (int)lua_tonumber(L, 1免费云主机、域名);lua_pop(L, 1);假设Lua程序中定义了一个全局变量z, 这段小程序就是把z的值取出放入C的变量z中.另外Lua中还有一个对应的函数lua_setglobal(), 作用是用栈顶的值填充指定的全局变量lua_pushnumber(L, 10);lua_setglobal(L, “z”);例如这段小程序就是把lua中的全局变量z设为10, 如果lua中未定义z的话, 就会自动创建一个全局变量z并设为10.“C/C++中怎么用Lua函数”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注云技术网站,小编将为大家输出更多高质量的实用文章!
这篇“vue如何将数组转为字符串”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue如何将数组转为字符串”文章吧。 在vue中,可以利用join…