gpt4 book ai didi

c - c中不同模块的lua_pushlightuserdata元表的行为

转载 作者:太空宇宙 更新时间:2023-11-04 04:48:10 28 4
gpt4 key购买 nike

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

好吧,我知道你不能有多个具有不同元表的 lightuserdata,但是即使指针是同一类型,是否可以在具有单独 mettables 的不同 C 模块中拥有 lightuserdata?

例如。

模块A:lightuserdata指向整型+Metatable AModule B : lightuserdata pointes to integer type + Metatable B

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

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

最佳答案

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

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

关于c - c中不同模块的lua_pushlightuserdata元表的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18870414/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com