【发布时间】:2010-09-18 18:09:32
【问题描述】:
我目前正在为 C 课程编写一个程序,在该程序中我必须输出形状的面积。
这是我的程序中用于矩形区域的函数:
double rectangle() // calculate area of rectangle
{
double length, width;
printf("\nEnter length and width of rectangle: ");
scanf("%g %g\n", &length, &width);
return (length*width);
}
这里是我调用函数rectangle()的地方
if(strncmp(shape, "rectangle", 15) == 0)
area = rectangle();
我在带有 GCC 编译器的 Linux Mint 中使用 Geany。
我收到的错误是
“geometryv2.c:78:错误:‘矩形’的类型冲突”
我看不出这里有什么冲突。返回类型为 double 的函数返回一个 double。这里的任何帮助将不胜感激。我对 C 还是很陌生,这实际上是我的第一个 C 程序。
谢谢!
【问题讨论】:
-
你可能在别处用不同的返回类型声明了函数。
-
不,这是唯一声明函数的地方,我的所有其他函数都在发生这种情况。我有“三角形”“椭圆”“圆形”和“多边形”函数都给出相同的错误。
-
在 1980 年代中期,在函数的声明(和定义)中使用空参数列表被认为是可以的。自 1989 年以来,最好使用关键字“void”明确表明不接受任何参数。换句话说,编译器接受“double rectangle()”只是为了向后兼容,但所有新代码都应该写成“double rectangle(void)”。