码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 在lua中新建内嵌库


     Lua库

    介绍:

            实际lua中的库是一个table,table中有不同的函数。比如string库是一个table,table中有不同的函数。

    Lua库有两种:一种是内嵌库,一种是共享库。

    共享库:

            有一个lua本体,我用C写一个库,在lua中require("xxx")该文件。

    内嵌库:

            在lua内部用C代码加一个库。

    两种库在写法上差不多,实际内嵌库是和lua一起打包编译,共享库是自己打包编译,lua在对其进行调用。

     制作一个内嵌Lua的 C库

    在lua源文件中添加一个文件testlib.c

    库的实现: 

      将库加入到lua中:

    找到linit.c文件:

     首先要在lualib.h头文件中声名初始化函数的声明:

     将库加入lua中:第一个参数是库名,第二个参数是库初始化函数。

    实际lua库是一个table:

    私有栈:

     查看文档:

     总结:

    1. lua栈是相互独立的,临时的。
    2. lua栈是用来实现lua和c进行数据传输的。
    3. lua私有栈并不遵守栈的规律,可以用下标进行访问,访问规则遵循lua的规律。

    Lua如何向私有栈传值:

            在函数调用时,写入值即可。如下:

            会按顺序入栈

     c结构给lua返回值:

            C函数处理完lua传过来的数据后,将结果入栈。return表示返回值ide个数,即需要的结果。在lua中用变量进行接收。

     小实验,c函数将lua传过来的值原样返回给lua:

     

     

     用C来操作Lua传过的数据,再返回给Lua。

     在C语言中使用处理Lua传过来数据的接口:

    与类型相关的接口:

     type_name与type_typename使用:

     ​​

     其他接口使用查看文档。LuatOS 文档

     特别说一下:

     读取数据的接口:

     

    返回肯定是一个整形

     

    返回是整形或者浮点形。 

     

     

     参数数据实际都获得了,但是由于C语言字符串以'\0'结尾,所以后面的字符串没有显示,可以根据返回的字符串长度,继续从s后面读取,知道到达长度。

     

     

     

     


     

  • 相关阅读:
    【附源码】Python计算机毕业设计社区卫生预约挂号系统
    VSCODE解决git合并过程中的冲突问题;error: failed to push some refs to
    【计算机视觉 | 目标检测】术语理解9:AIGC的理解,对比学习,解码器,Mask解码器,耦合蒸馏,半耦合,图像编码器和组合解码器的耦合优化
    【CSS应用篇】——CSS如何实现圆角边框
    【计算机网络】第二章、物理层
    双功能RGD-TAT修饰DNA纳米胶束|聚苯胺纳米线修饰DNA(PAINW/DNA)
    C++标准模板(STL)- 类型支持 (数值极限,quiet_NaN,signaling_NaN,denorm_min)
    word误删除的文件怎么恢复?恢复办法分享
    什么是代码风格?
    基于新版OpenCV5(C++)+OpenVINO Toolkit案例算法模型示例使用(一条语义分割与目标检测示例搞懂OpenVINO模型部署机制)
  • 原文地址:https://blog.csdn.net/weixin_57023347/article/details/126219253
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号