我试图返回两个值u
和v
,我将它们作为参数传递给函数get_uv( float u, float v )
。
由于double和float与整数类型不兼容,我们可以将它们转换为指针,并且以下代码给我们带来错误:无法转换为指针类型。
void calc_uv( float *u, float *v )
{
u = (float *) 0.0f;
v = (float *) 1.0f;
}
void anyfunction()
{
float u, v;
calc_uv( &u, &v )
printf("u: %f , v: %f", u, v);
}
如果使用,它会起作用:
void calc_uv( float *u, float *v )
{
*u = 0.0f;
*v = 1.0f;
}
但是我不明白为什么,因为u和v已经是指针。您能告诉我这是怎么回事吗?
修改和从函数返回两个浮点数的最佳方法是什么?
[我看到我可以使用float *f = malloc(sizeof *f);
之类的东西,但我的目标不是通过钩子或弯钩获取指针,只是以最简洁或简洁的方式更改输入值。
float u, v;
calc_uv( &u, &v )
[&u
表示引用u
(指针)
[&v
表示引用v
(指针)
void calc_uv( float *u, float *v )
float *u
-浮点指针
float *v
-浮点指针