我有几个全局整数变量,如Lua脚本中的A0,A1,A2。它们在C方面声明。它们中的每一个都包含唯一的数值 在脚本中,用户使用此别名操作设备引脚:
set_pin_bool(A0, 1)
这会调用相应的C函数。我认为它太C了,不太方便。更好的方法是调用A0.hi(),A0.low(),A0.set(1)等方法。 所以我试图将A0和其他人声明为C中的表格(这个只是一个结构):
lua_newtable(this->luactx);
lua_pushstring(this->luactx, "val");
lua_pushinteger(this->luactx, value);
lua_rawset(this->luactx, -3);
lua_setglobal ( this->luactx, "A0" );
我可以创建一个像 hi 这样的字段并使用lua_pushcfunction注册它。但是当我打电话给A0.hi()时,在C方面,我无法访问一个被调用的表来获取另一个字段。当我用Google搜索时,无法从C中获得类似 self 的内容。有没有办法实现它?我不想将表本身作为参数传递,例如 A0.hi(A0)
可能有很多别名,它们的名称可能不同
或者可能有不同的方法来实现同一目标?
答案 0 :(得分:4)
像这样调用hi
函数:
A0:hi()
这相当于:
A0.hi(A0)