lua学习总结——C API
来源:互联网 发布:枪林弹雨免费刷枪软件 编辑:程序博客网 时间:2024/04/30 08:14
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,并附上一条错误消息。
0 0
- lua学习总结——C API
- lua的c api 总结
- lua的c api 总结
- Lua与C通信——Lua API(一)
- lua学习笔记(3)——C API基础和栈
- Lua 学习笔记:C API 遍历 Table
- Lua 学习笔记:C API 遍历 Table
- Lua和C交互——C API
- Lua学习笔记:Lua 中的C Api 概述
- Lua C API 研究 —— 基础篇
- Lua学习总结——内存管理
- Zookeeper C API学习总结
- lua c api
- LUA C API
- lua C Api 简介
- lua-C API
- 【Lua】C-API
- lua C API
- Yii2 数据操作Query Builder
- IOS tabbar 点击刷新页面
- js移动端滑动一个屏幕再加载新的数据以及ajax同步请求
- zypper
- NLP学习笔记1 text processing
- lua学习总结——C API
- 移植alsa-lib与alsa-utils
- iOS 彻底学会使用delegate
- 从“==”变量与值位置这点小事想到的
- LengthFieldPrepender和LengthFieldBasedFrameDecoder
- yum
- mysql/Java服务端对emoji的支持
- CSS透明度设置支持IE,Chrome,Firefox浏览器
- Java回调机制