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 链接库的过程...

Lua5.3——C API函数

这里按字母次序列出了所有C API中的函数和类型。每个函数都有一个这样的提示:[-o, +p, x] 对于第一个域,o,指的是该函数会从栈上弹出多少个元素。第二个域,p,指该函数会将多少个元素压栈。...

lua的c api 总结

extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" }   #include  #include...

lua的c api 总结

lua和c的交互入门例子,功能是把字符串中的key=value字符串全部转换成XML格式value 代码如下: 使用lua的string.gsub 函数转换字符串(作为例子): [cpp...
  • mathlmx
  • mathlmx
  • 2014年10月19日 13:17
  • 887

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

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

Lua 学习笔记:C API 遍历 Table

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

Lua与C通信——Lua API(一)

Lua由C语言实现的嵌入式语言。C Api是一组能使C代码和Lua交互的函数。其中包括读写Lua全局变量、调用Lua函数、执行Lua代码,以及注册C函数以供Lua代码调用。 lua_...

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

lua C API学习笔记

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

lua源码解析

Lua 脚本 控制 XML配置 - 之Lua学习1 ( 多维嵌套表的 C API 交互)

初步想法利用luaExpat
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lua学习总结——C API
举报原因:
原因补充:

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