float fSum(float f0,float f1)
{
return f0+f1;
}
void main()
{
float s;
s=fSum(0.1f,0.2f);
}
//以上代码同时在main.c中运行正常
如果将fSum函数放到其它c文件,再调用就变成0,中断进入监视发现传参时f0,f1已变成0 ,有点怪
但把函数改为
fSum函数位于其它c文件)
void fSum(float* pf0,float* pf1,float* sum)
{
(*sum)=(*pf0)+(*pf1);
}
//____________________________________
void main()
{
float sum=0,f0=0.1,f1=0.2;
fSum( f0, f1, sum);
}
这样不会出错,double类型的也是这个毛病。好怪,有人遇到过吗?怎么解决?请教!编译器IAR for Arm 8.30.1