gc-ed lua对象上的析构函数

gc-ed lua对象上的析构函数,lua,garbage-collection,Lua,Garbage Collection,我知道Lua是gc-ed的,我知道Lua可以通过userdata处理c对象 我的问题是:是否有必要注册一个函数,以便在lua对C userdata对象进行gc调用时调用它?[基本上是一个析构函数] 谢谢 是的,有专门为此目的而调用的。有关详细信息,请参见的 以下代码段创建并注册一个\uuu gc元方法回调: luaL_newmetatable(L, "SomeClass"); lua_pushcfunction(L, some_class_gc_callback); lua_set

我知道Lua是gc-ed的,我知道Lua可以通过userdata处理c对象

我的问题是:是否有必要注册一个函数,以便在lua对C userdata对象进行gc调用时调用它?[基本上是一个析构函数]

谢谢

是的,有专门为此目的而调用的。有关详细信息,请参见的

以下代码段创建并注册一个
\uuu gc
元方法回调:

  luaL_newmetatable(L, "SomeClass");

  lua_pushcfunction(L, some_class_gc_callback);
  lua_setfield(L, -2, "__gc");