javaee论坛

普通会员

225648

帖子

344

回复

358

积分

楼主
发表于 2019-11-07 13:32:28 | 查看: 81 | 回复: 2

前两天测试Lua接收C++函数的参数时,发现number、boolean、string都没有什么问题,但是userdata和lightuserdata有什么区别呢?于是测试了一下,我们来看看结果。

具体代码C++代码intmain(){Ctesttest;lua_State*L=lua_open();luaL_openlibs(L);luaL_dofile(L,"pushtype.lua");//加载执行lua文件lua_register(L,"new_user_data",new_user_data);lua_pushstring(L,"Helloworld");lua_setglobal(L,"a");lua_pushinteger(L,110);lua_setglobal(L,"b");Ctest*c=&test;lua_pushlightuserdata(L,c);lua_setglobal(L,"c");char*d=(char*)lua_newuserdata(L,32);lua_setglobal(L,"d");lua_getglobal(L,"test_print");//函数入栈lua_pcall(L,0,0,0);//打印信息lua_close(L);return0;}Lua代码functiontest_print()print("a=",a)print("type="..type(a),"\n")print("b=",b)print("type="..type(b),"\n")print("c=",c)print("type="..type(c),"\n")print("d=",d)print("type="..type(d),"\n")end输出结果总结

经过测试我们发现,在Lua中lightuserdata和uesrdata的类型显示是一样的…


普通会员

0

帖子

288

回复

296

积分
沙发
发表于 2024-03-11 01:41:10

不错

普通会员

0

帖子

310

回复

319

积分
板凳
发表于 2024-04-23 20:09:04

不错

您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017