Lua-UserData(用户自定义类型)

UserData(用户自定义类型)


意义:使用C语言编写的用于扩展Lua的新类型,方便使用脚本编写或者提高效率


userdata:提供了一块原始的内存区域,用于存储任何东西,在Lua中userdata没有任何预定义操作
生成:void *lua_newuserdata(L,size) 根据指定大小分配一块内存,并将userdata压入栈中,最后返回这个内存块的地址


例子:

Lua

require "array"

a = array.new(1000)
print(a);
print(array.size(a))
for i=1,1000 do
	array.set(a,i,i%5 == 0)
end
print(array.get(a,10))


C++

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <limits.h>
extern "C" {  
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
} 

#define BITS_PER_WORD (CHAR_BIT*sizeof(unsigned int))
#define I_WORD(i) ((unsigned int)(i) / BITS_PER_WORD)
#define I_BIT(i) (1<<((unsigned int)(i) % BITS_PER_WORD))
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值