• table相关的API

    设置lua全局变量,弹出一个,并将之设为global name的。堆栈-1 void lua_createtable(lua_State*L,int narr,int nrec);创建空表并压栈,会根据参数预分配空间,如果你知道表将会有多大,预先分配的性能会更好。...
    文章 2014-07-28 705浏览量
  • 在C函数中保存状态:registry、reference和upvalues

    (2)不是所有的Lua值都能很好的保存到C变量中。那么可不可以将值保存在Lua全局变量里面呢,可以,Lua就提供了一个独立的被称为registry的表,但是Lua代码本身不能访问它。1、registry全局注册表 解释:一个普通的...
    文章 2014-08-04 824浏览量
  • lua与CAPI概述

    这个栈是抽象的栈,栈中每一个元素都能保存任何类型的LUA值。要获得一个lua中的一个值时(例如一个全局变量),只要调用一个Lua的Api函数,Lua就会将指定的值压入栈中。要将一个值传入Lua时,需要先将这个值压入栈,...
    文章 2013-04-09 612浏览量
  • lua与c++ 中布尔布bool对应关系

    lua代码返回为真c++ lua_toboolean 返回一个 int lua true=1 false=0 c++给lua返回 lua_pushboolean 1=true 0=false c++ 中 1为真 0为假-1b也为真
    文章 2013-12-05 548浏览量
  • Lua中调用C函数

    Lua利用一个虚拟的堆栈来给C传递或从C获取。每当Lua调用C函数,都会获得一个新的堆栈,该堆栈初始包含所有的调用C函数所需要的参数Lua传给C函数的调用实参),并且C函数执行完毕后,会把返回压入这个栈...
    文章 2014-07-29 998浏览量
  • lua与CAPI概述

    这个栈是抽象的栈,栈中每一个元素都能保存任何类型的LUA值。要获得一个lua中的一个值时(例如一个全局变量),只要调用一个Lua的Api函数,Lua就会将指定的值压入栈中。要将一个值传入Lua时,需要先将这个值压入栈,...
    文章 2017-11-27 1185浏览量
  • 查询元素

    它可以按照如下的规则将任意 Lua 转换为 C 的布尔值&xff1a;nil 和 false 转换为 0&xff0c;所有其他的 Lua 转换为 1。对于类型不正确的值&xff0c;函数 lua_tolstring 和 lua_tothread 返回 NULL。不过&xff0c;数值...
    文章 2022-12-07 21浏览量
  • lua_pcall,lua_call 调用前后栈情况

    首先压入函数,再依次压入参数,现在你就可以调用lua_call了,函数调用后将参数,函数都弹栈,函数返回时会将返回依次压栈。调用前堆栈情况 参数 参数 函数 调用后堆栈情况 返回 注意:无论在c函数里怎么调用栈,...
    文章 2013-11-08 600浏览量
  • C\C++和Lua是如何进行通信的?

    为了实现Lua和其他语言之间的通信,Lua虚拟机为C/C++提供了...需要特别指出的是,对于lua_isnumber而言,不会检查是否为数字类型,而是检查是否能转换为数字类型。文章转载自 开源中国社区[http://www.oschina.net]
    文章 2017-06-09 2374浏览量
  • lua如何调用C++函数

    因为在Lua中栈是从1开始编号的,因此该函数获得的就是参数的个数。在for循环中计算所有参数之和。调用lua_pushnumber()将参数的平均压栈。将参数之和压入栈中。最后,函数返回2,说明有两个返回在栈中。编译 ...
    文章 2014-09-06 912浏览量
  • Lua中调用C/C++函数(转)

    这里用到了数值转换lua_tonumber().*然后偶们用lua_pushnumber()把平均和总和push到栈中.*最后,偶们返回2,表示有两个返回.*偶们虽然在C++中定义了average()函数,但偶们的Lua程序并不知道,所以需要在main函数中...
    文章 2017-10-09 1655浏览量
  • 栈中的每个元素都能保存 Lua 中任意类型的。当我们想要从 Lua 中获取一个&xff08;例如一个全局变量的&xff09;时&xff0c;只需调用 Lua&xff0c;Lua 就会将指定的压入栈中。当想要将一个传给 Lua 时&xff0c;首先要...
    文章 2022-12-07 15浏览量
  • 编写C函数的技术-《lua程序设计》27章 学习

    注册表是位于一个”伪索引“上,这个索引LUA_REGISTRYINDEX定义。伪索引就像一个栈中的索引,但它所关联的不在栈中。为了获取注册表中的key为”Key”的,可以这么做 lua_getfield(L,LUA_REGISTRYINDEX,”KEY...
    文章 2013-11-17 695浏览量
  • 编写C函数的技术-《lua程序设计》27章 学习

    注册表是位于一个”伪索引“上,这个索引LUA_REGISTRYINDEX定义。伪索引就像一个栈中的索引,但它所关联的不在栈中。为了获取注册表中的key为”Key”的,可以这么做 lua_getfield(L,LUA_REGISTRYINDEX,”KEY...
    文章 2017-11-26 801浏览量
  • 转>lua 调用 C函数

    返回是整型,表示该C函数将返回给Lua代码的返回数量,如果没有返回,则return 0即可。需要说明的是,C函数无法直接将真正的返回返回给Lua代码,而是通过虚拟栈来传递Lua代码和C函数之间的调用参数和返回的...
    文章 2013-04-20 1012浏览量
  • lua与C(一):C调用lua

    3.使用lua_pcall调用lua_pcall(Lua_state,参数个数,返回个数,错误处理函数索引),然后参数和函数被弹出,结果被先后压入栈 如果出错,lua_pcall将返回一个非零,然后压入一条错误消息到栈
    文章 2012-08-09 1702浏览量
  • C中调用Lua函数

    函数调用,nargs表示参数的个数,nresults表示返回的个数 首先将lua函数压栈,然后将参数依次压栈,最后调用函数即可 函数调用时,参数和函数都会pop出栈,调用返回后,结果会push进栈 nresults=LUA_MULTRET,...
    文章 2014-07-28 881浏览量
  • Lua数据结构&8212;TValue(一)

    为什么是从TValue说起,TValue是实现Lua弱数据类型的主要数据结构,不但在脚本中的使用了TValue,连Lua的实现中,很多数据结构也依赖于TValue,TValue一定程度上贯穿了整个Lua。先说一下Lua里面的数据类型:(lua.h...
    文章 2014-06-05 2190浏览量
  • lua

    如果要获取的是一个数组(所谓数组,其实就是key是从1开始的数字序列的table,并且类型相同),用lua_next可以遍历这个数组: 首先lua_pushnil,压入一个空值,然后 while(lua_next(L,-2)!0){ if(lua_isnumber(L,-1))/...
    文章 2012-03-19 1015浏览量
  • lua 5.0的实现(翻译)1,2,3

    Figure 1:带标签的union表示lua值 Lua将值表示为带标签的union(tagged unions),也就是pairs(t,v),其中t是一个决定了值v类型的整数型标签,而v是一个实现了lua类型的C语言的union结构。Nil拥有一个单独的值(译注:...
    文章 2017-05-17 1852浏览量
  • Lua中的require

    当然参数是通过lua的栈传递的,所以loader的原型必须符合lua的规范:int LUA_FUNC(lua_State*L)ll_require会将这个loader的返回符给package.loaded[modelname],如果loader不返回同时 package.loaded[modelname]不...
    文章 2014-06-30 915浏览量
  • lua与c++ 中布尔布bool对应关系

    lua代码返回为真c++ lua_toboolean 返回一个 int lua true=1 false=0 c++给lua返回 lua_pushboolean 1=true 0=false c++ 中 1为真 0为假-1b也为真 出处:http://www.cnblogs.com/zhangdongsheng/ 作者:张东升
    文章 2017-11-27 879浏览量
  • Lua和C语言的交互——C API

    几乎所有的API调用都是对栈上的进行操作,所有C与Lua之间的数据交换也都通过这个栈来完成。因为栈是由Lua来管理的,垃圾回收器知道那个正在被C使用。Lua以一个严格的LIFO规则(后进先出;也就是说,始终存取栈顶...
    文章 2014-07-27 1130浏览量
  • lua与C(二):LUA调用c

    其中返回是其压入栈的函数返回的数量 2.然后将函数置入栈中 lua_pushfunction() 3.将函数从栈中推给lua lua_setglobal(L,name)name是在lua中这个函数的名字 注册一些函数,组成一个模块 1.首先定义这些函数 ...
    文章 2012-08-15 1092浏览量
  • Lua中的require(转)

    当然参数是通过lua的栈传递的,所以loader的原型必须符合lua的规范:int LUA_FUNC(lua_State*L)ll_require会将这个loader的返回符给package.loaded[modelname],如果loader不返回同时 package.loaded[modelname]不...
    文章 2016-03-04 1140浏览量
  • lua_pcall,lua_call 调用前后栈情况

    首先压入函数,再依次压入参数,现在你就可以调用lua_call了,函数调用后将参数,函数都弹栈,函数返回时会将返回依次压栈。调用前堆栈情况 参数 参数 函数 调用后堆栈情况 返回 注意:无论在c函数里怎么调用栈,...
    文章 2017-11-26 1870浏览量
  • 其他栈操作

    define lua_insert(L,idx)lua_rotate(L,(idx),1)点击复制复制失败已复制函数 lua_replace 弹出一个&xff0c;并将栈顶设置为自定索引上的&xff0c;而不移动任何元素。最后&xff0c;函数 lua_copy 将一个索引上的复制...
    文章 2022-12-07 18浏览量
  • lua程序设计

    (6)lua的数据类型:lua是动态类型的语言,变量不需要指定类型,lua会自动根据变量的判断变量的类型。lua中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和table。boolean类型...
    文章 2017-11-27 1347浏览量
  • ngx_lua_API 指令详解(五)coroutine.create,...

    再根据lua_resume的返回进行处理。一、命令列表 1、coroutine.create-创建协程 2、coroutine.resume-执行协程 3、coroutine.yield-中断协程运行 4、以 coroutine.wrap 的方式创建协程 5、coroutine.running-返回...
    文章 2017-07-19 1668浏览量
  • 【精选】Nginx模块Lua-Nginx-Module学习笔记(一)...

    该ngx.null常数是一个NULL通常用来表示在Lua表等零光用户数据和类似于LUA-cjson库的cjson.null常数。此常数最早在引入的v0.5.0rc5释放。待续. HTTP方法常量 上下文:init_by_lua*,*set_by_lua,rewrite_by_lua*,...
    文章 2017-03-12 2165浏览量
1 2 3 4 ... 62 >

云产品推荐

视频直播 大数据计算服务 MaxCompute 国内短信套餐包 开发者问答 阿里云建站 新零售智能客服 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT 阿里云科技驱动中小企业数字化