当前位置:  开发笔记 > 编程语言 > 正文

有没有办法以编程方式确定在C/C++中Lua函数需要多少个参数?

如何解决《有没有办法以编程方式确定在C/C++中Lua函数需要多少个参数?》经验,为你挑选了1个好方法。

有没有办法确定Lua函数在从C/C++代码调用它之前需要多少参数?

我看了看lua_Debuglua_getinfo,但他们似乎并没有提供我所需要的.

看起来有点像我反对Lua的精神,但我真的想要证明我在Lua和C++之间的界面.当从Lua代码调用C++函数时,接口验证Lua提供了正确数量的参数,并且每个参数的类型都是正确的.如果发现参数a lua_error发出问题.

我想反过来检查类似的错误.当C++调用Lua函数时,它至少应该检查Lua函数是否没有声明更多参数.



1> Aaron Saarel..:

Lua无法满足您的要求.

您可以使用一组参数定义Lua函数,如下所示:

function f(a, b, c)
   body
end

但是,Lua对传递给此函数的参数数量没有限制.

这是有效的:

f(1,2,3,4,5)

额外的参数被忽略.

这也是有效的:

f(1)

其余参数分配为'nil'.

最后,您可以定义一个带有可变数量参数的函数:

function f(a, ...)

此时,您可以将任意数量的参数传递给函数.

请参阅Lua参考手册的 2.5.9节.

您可以在这里做的最好的事情是为Lua函数添加检查以验证您是否收到了您期望的参数.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有