我正在尝试输入以下数组
float array[3] = {a, b, c};
转换成一个函数,比如
3DLocation(float x, float y, float z)
作为
3DLocation(array[3])
而不是作为
3DLocation(array[0], array[1], array[2])
因此像R或Python(具有某些库(等一样被矢量化
是否有在标准库中执行此操作的方法
如果没有,是否有方法使函数只使用标准库来执行此操作
如果没有,什么库可以帮助我做到这一点
此外,是";矢量化的";我要找的术语
并且,是";express";对,或者我应该编辑我的问题说";访问";相反
在标准库中有办法做到这一点吗?
C没有Python的一元*
运算符的内置模拟(一元*
在C中有不同的含义,尽管在某些方面类似(。
如果没有,有没有办法让一个函数只使用标准库来实现这一点?
您可以编写一个助手函数来实现这一点:
void call_unpacked(void (*func)(float, float,float), float args[]) {
func(args[0], args[1], args[2]);
}
然后你可以随心所欲地使用它:
call_unpacked(3DLocation, array);
您也可以将call_unpacked()
编写为宏,这有一些优点,或者您可以编写一个专门封装3DLocation()
的函数或宏来代替通用包装器:
void 3DLocation_unpacked(float a[]) {
3DLocation(a[0], a[1], a[2]);
}
但是在标准库中没有这样的函数或宏。
如果没有,什么库可以帮助我做到这一点?
图书馆推荐请求不在这里。
此外,是";矢量化的";我要找的术语?
Python中的常用术语(因为您提到了该语言(涉及单词"的形式;打开";,如我在前面使用的。我不认为在你所说的术语上有任何跨语言的共识。
并且,是";express";对,或者我应该编辑我的问题说";访问";相反
"Express";虽然我理解你的意思,但我觉得不对"访问";更糟。就我个人而言,我倾向于坚持";打开";,改写问题的措辞以使其符合要求。