【发布时间】:2015-04-16 11:31:21
【问题描述】:
所以我正在尝试用 C 语言编写一个带有方法的基本程序,但在编译程序时不断出错,这是由于我的方法所致
我不断收到错误提示
curve.c: In function ‘compute_curve’:
curve.c:32:7: error: argument ‘f’ doesn’t match prototype
float compute_curve(f)
^
curve.c:6:7: error: prototype declaration
float compute_curve(float);
我是这个编译的新手,所以只是好奇我在哪里搞砸了 float 和 int 的
【问题讨论】:
-
main()应该是int main(void)。float compute_curve(f)应该是float compute_curve(float f)了解如何让你的编译器警告你这些事情。此外,C 函数不称为“方法”。它们被称为“函数”。 -
还有一个没有提到的bug;
fclose(fp);应该在它所在的循环之外。(否则你在第一次迭代后关闭文件)。 -
关于这一行:'float f = 1.0;' '1.0' 定义了一个 double,然后必须将其转换为 float 才能分配给 'f'。建议使用'float f = 1.0f;'其中最后的 'f' 是一个值修饰符,它使值变为浮点数
-
在处理浮点值时,您需要非常小心使用“=”,因为许多数字不能完全用浮点数或双精度数实现。
-
这一行:'while (f != 0)' 将浮点值与整数值进行比较。建议使用:'while (f != 0.0f)'
标签: c methods compilation int