繁体   English   中英

C中不同模块之间lua_pushlightuserdata元表的行为

[英]Behaviour of lua_pushlightuserdata metatables across different modules in c

我一直在修改Lua C API,但偶然发现了一些我自己无法弄清楚的东西。

好吧,我知道您不能具有带有不同元表的多个lighuserdata,但是即使指针具有相同的类型,也可以在具有单独的mettable的不同C模块中具有lightuserdata吗?

例如。

模块A:lightuserdata指向整数类型+元表A模块B:lightuserdata指向整数类型+元表B

我希望模块B不会覆盖模块A中lightuserdata上的元表。

有人知道这是否会发生吗?

Lightuserdata不能有单独的元表:所有lightuserdata值都具有相同的元表,最初是nil。 如果将metatable赋予lightuserdata值,它将被设置为所有lightuserdata值。

具有单个元表是普通的完整用户数据的目的。 只使用完整的用户数据,不要三思而后行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM