LuaDll.lua_gc的源码在哪?
时间: 2024-02-26 10:57:10 浏览: 21
LuaDll.lua_gc是Lua的C API中的函数,其源码可以在Lua的源代码中找到。具体来说,源码位于文件lapi.c中。以下是该函数的源码实现:
```c
static int luaB_collectgarbage (lua_State *L) {
static const char *const opts[] = {"stop", "restart", "collect",
"count", "step", "setpause", "setstepmul", NULL};
static const int optsnum[] = {LUA_GCSTOP, LUA_GCRESTART, LUA_GCCOLLECT,
LUA_GCCOUNT, LUA_GCSTEP, LUA_GCSETPAUSE, LUA_GCSETSTEPMUL};
int o = optsnum[luaL_checkoption(L, 1, "collect", opts)];
int ex = luaL_optint(L, 2, 0);
int res = lua_gc(L, o, ex);
switch (o) {
case LUA_GCCOUNT: {
int b = lua_gc(L, LUA_GCCOUNTB, 0);
lua_pushnumber(L, res + ((lua_Number)b/1024));
return 1;
}
case LUA_GCSTEP: case LUA_GCSETPAUSE: case LUA_GCSETSTEPMUL: {
lua_pushboolean(L, 1);
return 1;
}
default: {
lua_pushinteger(L, res);
return 1;
}
}
}
```
注意,这只是该函数在Lua中的实现,而非LuaDll.lua_gc的完整实现。因为LuaDll.lua_gc是一个动态链接库函数,其实现可能会依赖于具体的操作系统和编译器。如果您需要查看完整的实现代码,请参考相应的Lua动态链接库的源代码或者相关的文档。