gpt4 book ai didi

c++ - 使用带有指针参数的函数作为另一个函数的参数

转载 作者:行者123 更新时间:2023-11-30 21:28:54 25 4
gpt4 key购买 nike

如何正确地将带有指针参数的函数作为参数传递给另一个函数并返回值?

我有一个函数,它采用指向 2 个数组(pos1 和 pos2)的指针形式的两个参数:

float distance(float *pos1, float *pos2){
return sqrt(pow((pos1[0]-pos2[0]),2)+pow((pos1[1]-pos2[1]),2));
}

我想将此函数作为参数传递给另一个函数:

float force(float mass1, float mass2, float(*distance)(float,float), float scaling, float *pos1, float *pos2){
return distance(*pos1, *pos2); // how to correctly return the value?
}

这是返回值的正确方法吗?我是否还需要在“力”函数中包含“距离”函数的参数?

谢谢!

最佳答案

第一个距离必须是一个“函数指针”,它获取两个 float* 作为参数。因此将“强制”签名更改为

float force(float m1, float m2, float (*distance)(float*, float*), float scaling)

其次,在力体中调用距离与实际参数,例如:

return distance(m1, m2);

最后,当调用force时,只需将函数的名称作为参数传递即可:

x = force(y,z,&distance, scale);

函数名称之前的“&”符号通常是可选的。

希望对您有所帮助。

关于c++ - 使用带有指针参数的函数作为另一个函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36822358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com