• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Lua > C语言中调用Lua函数实例

C语言中调用Lua函数实例

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了c语言调用lua,lua实例,lua脚本实例,lua游戏脚本实例,c语言函数实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

记得上学时,初中英文课本中,上网叫做surfing the internet,中文叫网上冲浪。那个时期,人们经常称互联网为赛博空间。如今工作了,大量的零碎时间用于上微博,知乎,QQ,这些碎片化的阅读让人读起来轻松,也能获取些粗浅的信息。然而它们是消耗时间的黑洞,时间就这样一分一秒地飞逝,年末的时候,知乎会告诉你回答了多少问题,阅读了相当于一部《红楼梦》那么多的文字。只是当你静下来一想,这些浅阅读并没给你带来有深度,系统的知识。在你的时间线上,两条相邻信息往往是八竿子也打不着的。而且你还时不时去看看关注者有没有更新,期待让你眼前一亮的信息。结果往往是趁兴而去,败兴而回。屏幕上的信息永无止境地滚动着,是如此的热闹,仿佛每个人都在狂欢,而我的内心却如此的空虚与孤独。

在lua API中,调用一个函数的步骤很简单:

1.压入你要调用的函数,使用lua_getglobal。
2.压入调用参数。
3.使用lua_pcall
4.从栈中弹出结果。

举例说明,假设你有这么一个lua函数:
function f (x, y)
     return (x^2 * math.sin(y))/(1 - x)
end
</div>
那么,我们就可以定义个c函数来封装这个调用:
/* call a function 'f' defined in Lua */
double f (double x, double y)
{
double z;
lua_getglobal(L, "f");
lua_pushnumber(L, x);
lua_pushnumber(L, y);
/* do the call (2 arguments, 1 result) */
if (lua_pcall(L, 2, 1, 0) != 0)
     error(L, "error running function 'f': %s",
lua_tostring(L, -1));

if (!lua_isnumber(L, -1))
     error(L, "function 'f' must return a number");
z = lua_tonumber(L, -1);
lua_pop(L, 1);
return z;
}
</div>
lua_pcall在压入结果的之前,会将函数,和参数弹出,如果返回多个结果,第一个最先压入。如果lua_pcall运行出错,那么会返回个非0值。
(完)

</div>

您可能想查找下面的文章:

  • Lua编程示例(七):协同程序基础逻辑
  • 使用Lua作为C语言项目的配置文件实例
  • C语言中调用Lua函数实例
  • C语言模块回调Lua函数的两种方法
  • Lua与C语言间的交互实例
  • C语言中通过LUA API访问LUA脚本变量的简单例子
  • Lua和C语言的交互详解

相关文章

  • Lua面向对象编程之类的简单实现方式
  • Lua中的递归函数写法实例
  • 使用lua实现split字符串分隔
  • openresty中使用lua-nginx创建socket实例
  • Lua中让回调函数支持回调对象方法的解决方法
  • Lua面向对象之多重继承、私密性详解
  • Lua中ipair和pair的区别
  • Ruby类实例变量、类实例方法和类变量、类方法的区别
  • 在Lua程序中使用MySQL的教程
  • 使用Lua编写Web端模板引擎的实例代码分享

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Lua中的逻辑运算符使用详解
    • Lua中执行系统命令方法介绍
    • Lua教程(二):基础知识、类型与值介绍
    • Lua中的loadfile、dofile、loadstring、require用法实例
    • Lua中的迭代器和泛型for介绍
    • lua日志文件处理代码
    • Lua中全局变量与非全局环境介绍
    • Lua简介、编译安装教程及变量等语法介绍
    • Lua编程示例(三):稀疏表、双端队列、格式化输出、表和循环表的格式化输出
    • LUA string库使用小结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有