我为此使用带有 gcc 的 Netbeans,我发现函数参数的值在调用函数和被调用函数之间被破坏了。
在 myfuns.h 中:
float dotprod( float u1, float u2, float u3, float v1, float v2, float v3 );
在 myfuns.c 中
float dotprod( float u1, float u2, float u3, float v1, float v2, float v3 )
{
float res= u1*v1+u2*v2+u3*v3 ;
return res;
}
在 main.c
...
float dp=dotprod( rx, ry, rz, ddx, ddy, ddz );
...
如果我在 dotprod() 函数中打印 u1,u2 等的值,或者使用调试器检查它们,则这些值与 main.c 中的 rx,ry 等的值不同
如果我将参数从 float 转换为 float*,问题似乎就消失了。我还尝试在 6 个浮点参数之前和之后添加一个虚拟整数参数,第一个可以,但最后一个也会损坏。我花了几个小时试图找出错误。
有什么建议么 ?