我创建了一个表并分配了一个lua_pushcfunction名为的方法mytable:myfunction()。在不同的(回调)上下文中,它必然会myfunction在 Lua 脚本中被覆盖。由于某些原因,如果我myfunction从 C 主机调用,我需要知道是否myfunction仍然是 c 函数或被脚本替换。
如果 C 方法仍然附加或被一些 Lua 代码替换,有没有办法测试(来自 C)?
是的,您可以使用lua_iscfunction.
另一种可能性是使用lua_tocfunction. 这使您还可以检查您返回的 C 函数是否是您期望的。