通过Lua C API解释有关函数参数的细节

如果我通过 C API 调用函数 foo(t[1]),我能以什么方式查看作为参数的表格和索引是什么,即 t1

问题在于一个函数 move_card(card, table_slots[0]),我会将一张卡从游戏区域的一个位置移动到另一个位置。 table_slots 也可以是 handplayer_slots。这可以使用元表解决,指定正在访问的表格的名称。但是索引是无法解决的,是吗? table_slots[0] 可以是 card 表格,也可以是 overlaystack(卡的数组),如果为空,则可以是 nilplayer_slots 也是如此。但是我实际上需要知道的是它是否来自 table_slotsplayer_slots

我能否黑客一些代码分析? 比如,获取调用函数的行,然后通过正则表达式 grep 索引? 我也可以将 table_slots[0] 作为字符串发送,例如 move_card(card, "table_slot[0]")。不太优雅,但仍然有效。

点赞
用户107090
用户107090

不,一旦一个值到达函数,无论是 C 还是 Lua,它的起源都会丢失。

另一方面,当 Lua 发生错误时,运行时系统会尝试相当长时间来重构相关值的来源,但并不总是成功。

2013-10-11 17:18:25