lua - 有关 Lua C API 函数参数的详细信息

标签 lua function-parameter lua-api

如果我通过 C API 调用函数 foo(t[1]),我可以以任何方式查看哪个表和哪个索引作为参数,在本例中是 t1

当前的问题是一个函数 move_card(card, table_slots[0]) ,我将一张卡从游戏区域的一个插槽移动到另一个插槽。 table_slots 也可以是 handplayer_slots。这可以使用元表来解决,说明正在访问的表的名称。但索引是不可能解决的,不是吗? table_slots[0] 可以是 card 表、overlaystack(卡片数组),或者nil 如果它是空的,player_slots 也可以。但我实际上需要知道的是它是来自 table_slots 还是 player_slots

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

最佳答案

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

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

关于lua - 有关 Lua C API 函数参数的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19323600/

相关文章:

lua - luaL_loadbuffer 可以一次调用加载多个文件吗?

c - 如何将条件作为参数传递给 C 中的函数?

Javascript:仅在函数中使用特定参数

c - 创建后 Lua c API 更改库

lua - 寻找 "weak Lua registry"

c++ - 如何根据模板参数包是否与函数参数匹配来控制模板函数定义?

macos - 无法在 osx yosemite 上进行枪战。 undefined symbol

使用彼此本地对象的模块

string - Lua中如何在点之前分割字符串?

lua - 如何检测 Lua 脚本何时访问全局变量?