我想在ANSI C中声明一个在我的代码中使用的函数。在main()中使用它之后,我可以定义这个函数吗?例如,我写的一个绝对值函数:谁能告诉我它是不是声音?
#include <stdio.h>
int main()
{
double value1 = -5;
printf("%lf",
abs(value1));
}
double abs(double number)
{
if (number < 0) {
(number * (-1) = number);
}
return number;
}发布于 2013-04-18 05:10:41
你需要修复几件事:
#include <stdio.h>
double abs(double number); // <<< 1. prototype here
int main()
{
double value1 = -5;
printf("%lf",
abs(value1));
}
double abs(double number)
{
if (number < 0) {
number = number * -1.0; // <<< 2. fix here
}
return number;
}abs函数需要一个原型,以便编译器在调用它之前知道它的函数签名。您的表达式number its -to-front发布于 2013-04-18 05:54:28
函数必须至少在使用前声明,最好使用原型语法(指定参数的数量和类型以及返回类型)。所以最起码,你需要像这样的一行
double abs( double number ); 在main中调用abs之前,在代码中的某个位置。
您还可以在使用函数之前定义该函数:
double abs( double number )
{
// compute absolute value
}
int main( void )
{
...
x = abs(x);
...
}这实际上是我的偏好;同一翻译单元(文件)中的所有内容都应该在使用之前进行定义。这样,您就不必担心保持声明和定义的同步。
https://stackoverflow.com/questions/16070299
复制相似问题