各位大哥你们好!小弟是彻底的编程菜鸟,最近作课题涉及到到c语言编程,tc3.0下编译时遇到了"重定义类型不匹配",即
Type mismatch in redeclaration in "REPx"的错误。REPx是程序中的多个子程序之一,用于返回一个点的x坐标,只涉及简单if语句:
double REPx(double x1,double y1,double x2,double y2,double r,double r2)
{
double A,A1,A2,B1,m,dist;
if(y1==y2)
{
A1=x2-r-r2;
A2=x2+r+r2;
B1=y1;
}
else
{
m=sqrt((y1-y2)*(y1-y2)*(-2*x1*x2-2*y1*y2+x1*x1+x2*x2+y1*y1+y2*y2)*(r+r2)*(r+r2));
A1=(2*x1*x2*x2*y2-x2*y2*x1*x1+x1*m-x2*y2*y2*y2-x2*x2*x2*y2-x2*m+x2*x2*x2*y1+x2
*y1*y1*y1-3*x2*y2*y1*y1+3*x2*y2*y2*y1-2*x2*x2*y1*x1+x2*y1*x1*x1)/(-2*x1*x2-2*y1*y2
+x1*x1+x2*x2+y1*y1+y2*y2)/(y1-y2);
A2=(2*x1*x2*x2*y2-x2*y2*x1*x1-x1*m-x2*y2*y2*y2-x2*x2*x2*y2+x2*m+x2*x2*x2*y1+x2
*y1*y1*y1-3*x2*y2*y1*y1+3*x2*y2*y2*y1-2*x2*x2*y1*x1+x2*y1*x1*x1)/(-2*x1*x2-2*y1*y2
+x1*x1+x2*x2+y1*y1+y2*y2)/(y1-y2);
B1=(-2*x2*y2*x1+y2*y1*y1+x1*x1*y2+y2*y2*y2+x2*x2*y2-2*y2*y2*y1+m)/(-2*x1*x2-2*y1
*y2+x1*x1+x2*x2+y1*y1+y2*y2);
}
dist=sqrt((x1-A1)*(x1-A1)+(y1-B1)*(y1-B1));
if(dist<(r+r2))
A=A1;
else
A=A2;
return(A);
}
这个子程序将在其他子程序中嵌套使用,并且仅对此子程序单独调试可以正常编译通过,小弟没有看出有语法错误。
请大家帮忙分析一下,出现“重定义类型不匹配”可能是什么原因呢?烦劳大家了