Lua教程(二十二):userdata
2024年05月19日
•
Lua
•
我要评论
在lua中可以通过自定义类型的方式与c语言代码更高效、更灵活的交互。这里我们通过一个简单完整的示例来学习一下lua中userdata的使用方式。需要说明的是,该示例完全来自于programming i
在lua中可以通过自定义类型的方式与c语言代码更高效、更灵活的交互。这里我们通过一个简单完整的示例来学习一下lua中userdata的使用方式。需要说明的是,该示例完全来自于programming in lua。其功能是用c程序实现一个lua的布尔数组,以提供程序的执行效率。见下面的代码和关键性注释。
轻量级userdata:
之前介绍的是full userdata,lua还提供了另一种轻量级userdata(light userdata)。事实上,轻量级userdata仅仅表示的是c指针的值,即(void*)。由于它只是一个值,所以不用创建。如果需要将一个轻量级userdata放入栈中,调用lua_pushlightuserdata即可。full userdata和light userdata之间最大的区别来自于相等性判断,对于一个full userdata,它只是与自身相等,而light userdata则表示为一个c指针,因此,它与所有表示同一指针的light userdata相等。再有就是light userdata不会受到垃圾收集器的管理,使用时就像一个普通的整型数字一样。
相关文章:
-
-
-
Lua编程中的一些基本语法整理
lua是相当简单易学,让我们开始创建第一个lua程序!第一个lua程序交互模式编程:lua中提供了一个名为交互模式模式。在这种模式下,你可以键入一个接一个的指令...
[阅读全文]
-
-
详解Lua中的变量相关知识点
变量不过是存储到区域项目可以操作的名称。它可以容纳不同类型的值,包括函数和表格。变量名可以由字母,数字和下划线。它必须以字母或下划线。大写和小写字母是不同的,因...
[阅读全文]
-
详解Lua中的数据类型
lua是动态类型语言,所以变量没有类型,仅值有类型。值可以被存储在变量中,作为参数传递,并作为结果返回。在lua中虽然我们没有变量的数据类型,但我们有类型的值。...
[阅读全文]
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论