lua学习总结——C API

原创 2015年07月06日 17:39:43

1、lua与C语言通信的主要方法是一个无所不在的虚拟栈。该栈由lua管理,lua只会改变栈的顶部,而C代码可以检索栈中间的元素,甚至在栈的任意位置插入或删除元素。

2、C语言没有提供异常处理机制,lua使用C语言中的setjmp机制,这是一种类似于异常处理的机制。当编写库代码时(被lua调用的C函数)使用longjmp捕获所有可能的错误;而编写应用程序代码时(调用lua的C代码),必须提供一种捕获错误的方法。

1)应用程序中错误代码处理:如果发生了内存分配错误,又不想结束应用程序,两种做法:

(1)设置紧急函数,不要把控制权返还给lua;

(2)让代码在保护模式下运行,调用lua_pcall()函数运行。

2)库代码中错误处理:

当一个C函数检测到一个错误时,就应该调用lua_error,lua_error会清理lua中所有需要清理的东西,然后跳转回发起执行的那个lua_pcall,并附上一条错误消息。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Lua C API 研究 —— 基础篇

对 Lua C API 进行基础的介绍 总结了 C 调用 Lua 函数的栈操作过程 总结了 Lua 调用 C 函数的栈操作过程 总结了 Lua 加载 C 链接库的过程

云风的博文《Lua C API 的正确用法》读后总结

云风的博文《Lua C API 的正确用法》(http://blog.codingnow.com/2015/05/lua_c_api.html) 该文章是一年前写的,不好意思在原文下面写心得体会了,...

Lua 学习笔记:C API 遍历 Table

前情提要 Lua 通过一个虚拟栈与 C 的交互,正数索引自底向上取值,负数索引自顶向下取值。 Lua 中的 Table(表)结构可以使用任何数据作为 key 进行取值。使用 C API 访...

lua源码学习(一)lua的c api外围实现

lua源码解析

Lua学习笔记:Lua 中的C Api 概述

lua C API学习笔记

C++ – Lua C API

C++ – Lua C API1. Lua解释器Lua解释器是什么?Lua解释器是一个使用Lua标准库实现的独立的解释器,是一个很小的Lua应用(总共不超过500行的代码)。解释器负责程序和使用者的接...

LUA C API接口

Step By Step(Lua-C API简介) - Stephen_Liu - 博客园 Stephen Liu ...

lua-C API

Lua是一种嵌入式脚本语言,即Lua不是可以单独运行的程序,在实际应用中,主要存在两种应用形式。第一种形式是,C/C++作为主程序,调用Lua代码,此时可以将Lua看做“可扩展的语言”,我们将这种应用...

导出 C/C++ API 给 Lua 使用

cocos2d-x 和 quick-cocos2d-x 的底层代码都是使用 C++ 语言开发的。为了使用 Lua 脚本语言进行开发,我们利用 tolua++ 工具,将大量的 C/C++ API 导出到...

Lua C api 中让人头痛的栈与table传递

在Lua对C的api中有两个知识点非常重要,而且这两个知识点也是很容易导致程序出错。 1.栈的使用     其中要先看明白以下这篇参考文章:     Lua推栈          以上已经好明确的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)