首页 > 其他分享 >Lua常用C Api接口

Lua常用C Api接口

时间:2024-05-22 11:31:24浏览次数:19  
标签:函数 lua 栈顶 接口 Lua Api myGlobal 推入

Lua 5.4 是 Lua 语言的一个版本,它提供了许多 C API 函数,这些函数允许开发者在 C 语言中嵌入和扩展 Lua 的功能。以下是一些常用的 Lua 5.4 C API 函数,以及它们的简单示例:

  1. lua_newstate - 创建一个新的 Lua 状态。

    lua_State *L = lua_newstate(0, 0); // 创建一个新的 Lua 状态
    
  2. lua_close - 关闭一个 Lua 状态。

    lua_close(L); // 关闭 Lua 状态
    
  3. lua_openlibs - 打开 Lua 的标准库。

    lua_openlibs(L); // 打开所有标准库
    
  4. lua_getglobal - 获取全局变量。

    lua_getglobal(L, "myGlobal"); // 获取名为 'myGlobal' 的全局变量
    
  5. lua_setglobal - 设置全局变量。

    lua_pushnumber(L, 42); // 将数字 42 推入栈
    lua_setglobal(L, "myGlobal"); // 将栈顶的值设置为全局变量 'myGlobal'
    
  6. lua_pcall - 调用一个函数。

    int status = lua_pcall(L, 0, LUA_MULTRET, 0); // 调用栈顶的函数
    if (status != LUA_OK) {
        // 处理错误
    }
    
  7. lua_pushnumber - 将一个数字推入栈。

    lua_pushnumber(L, 123); // 将数字 123 推入栈
    
  8. lua_pushstring - 将一个字符串推入栈。

    const char *str = "Hello, Lua!";
    lua_pushstring(L, str); // 将字符串 "Hello, Lua!" 推入栈
    
  9. lua_pushboolean - 将一个布尔值推入栈。

    lua_pushboolean(L, 1); // 将真值推入栈
    
  10. lua_pushnil - 将 nil 推入栈。

    lua_pushnil(L); // 将 nil 推入栈
    
  11. lua_pop - 从栈中弹出元素。

    lua_pop(L, 1); // 从栈中弹出一个元素
    
  12. lua_newtable - 创建一个新的空表。

    lua_newtable(L); // 创建一个新的空表
    
  13. lua_settable - 将一个值设置到表中。

    lua_pushstring(L, "key"); // 推入键
    lua_pushnumber(L, 123); // 推入值
    lua_settable(L, -3); // 将值设置到表中,表在栈的 -3 位置
    
  14. lua_gettop - 获取栈顶的索引。

    int top = lua_gettop(L); // 获取栈顶索引
    
  15. lua_settop - 设置栈的顶部。

    lua_settop(L, 0); // 将栈顶设置为 0
    
  16. lua_load - 加载一个 Lua 脚本。

    int status = lua_load(L, my_reader, data, "script.lua");
    if (status != LUA_OK) {
        // 处理错误
    }
    
  17. lua_register - 注册 C 函数到 Lua 中。

    lua_register(L, "myCFunction", myCFunction); // 注册 C 函数
    

标签:函数,lua,栈顶,接口,Lua,Api,myGlobal,推入
From: https://www.cnblogs.com/judes/p/18205867

相关文章

  • 接口测试用例设计的关键步骤与技巧解析
    简介接口测试在需求分析完成之后,即可设计对应的接口测试用例,然后根据用例进行接口测试。接口测试用例的设计也需要用到黑盒测试用例设计方法,和测试流程与理论章节的功能测试用例设计的方法类似,设计过程中还需要增加与接口特性相关的测试用例。接口测试流程接口测试的质量目标......
  • THUSC & APIO2024 - 无题
    2024.05.09明天要飞宁波了,今天晚上机房几乎没有老师,颓废人数达到巅峰(换言之,根据我的观察,只有xzj和ly没有颓废过)。所以说应该放松一下。今天真的做了很多题!!!2024.05.10早上坐飞机从江北机场飞到栎社机场。在出发前遇到了jjh,跟他打招呼,他竟然没有回应我,愤慨!接着从机场坐地铁......
  • lua语言特性及用途
    Lua是一个小巧的脚本语言,其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C......
  • 钉钉开放接口-如何发起带有附件的审批单
    importjava.io.*;importjava.net.HttpURLConnection;importjava.net.URL;importjava.util.HashMap;importjava.util.Map;publicclassfujian{publicstaticvoidmain(Stringargs[])throwsException{//从接口返回信息中拿到resourceUrls......
  • .net webapi 处理前端请求跨域问题
    1.打开 Program.cs文件,在 varapp=builder.Build();语句前添加如下代码builder.Services.AddCors(o=>o.AddPolicy("any",p=>p.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()));2.在varapp=builder.Build();语句后添加 app.UseCors();app.UseCors();......
  • 基于webapi的websocket聊天室(番外一)
    上一篇我已经实现了聊天室,并且在协议中实现了4种类型的消息传输。其实还可以添加video,audio,live等等类型。不过假如把目前的协议看作RCP1.0版的话,这个版本就只支持有限的4种消息。精力有限啊。也许RCP2.0就可以把video,audio类型加进去?这不是这篇番外考虑的。而是我在定义和实现......
  • 节省时间,使用企业联系方式API接口!
     在现代高速发展的商业环境下,了解其他企业的联系方式是非常重要的。你可能需要与其他企业进行商业合作,或者需要获取其他企业的相关信息。而传统的方式需要耗费大量时间和精力,因此我们为您推荐使用我们的企业联系方式API接口,帮助您快速获取企业联系方式信息。我们的API接口可以......
  • 全国霸王餐API接口,饿了么霸王餐API接口 免费对接中
    接口地址:https://open.wikeyun.cn/#/apiDocument/32/document/550 --- 支持全国50+城市,美团、饿了么都支持。联合跑单 store_idint是1店铺IDmobilestring是 手机号latstring是 用户位置坐标纬度lngstring是......
  • APIO 2024 游记
    干的全是无意义事,所以写的游记也是无意义内容,感觉真是纯游了。标题怎么这么短?原来是技不如人清北营全都去不了,只能打这种花钱的没用比赛,哈哈......
  • .Net6 web API (跨域请求 Vue项目)
    前沿在做新项目的时候跨域2中选择一种是,.net .net //添加跨域策略builder.Services.AddCors(options=>{options.AddPolicy("CorsPolicy",opt=>opt.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().WithExposedHeaders("X-Pagina......