#include <stdio.h>
int main(void)
{
double depth = 10;
printf("celsius_at_depth(%f) = %f\n", depth, celsius_at_depth(depth))
return 0;
}
然后是函数定义
double celsius_at_depth(double depth);
{
return 10 * depth + 20;
}
所以,我正在完成一项任务,而我的老师并没有很好地解释这些功能。我会节省一些时间并显示发生错误的主要部分:
#include <stdio.h>
6 int main(void)
7 {
8 double Depth;
9 double celsius_at_depth(Depth);
10 {
11 10*(Depth)+20;
12 }
错误:
GHP#4.c:9:2: warning: parameter names (without types)
in function declaration [enabled by default]
double celsius_at_depth(Depth);
^
抱歉格式化,我希望它更容易看到。是不是应该是函数celsius_at_depth的参数类型?
编辑:我已经查看了网站上的错误,但我没有看到与我的代码格式相同的格式,所以我觉得最好重新发布答案 0 :(得分:2)
在另一个函数中定义一个函数是 gcc AFAIK的非标准扩展,所以这不是一个好主意。
要声明该功能,首先需要将其移到main()
以外
double celsius_at_depth(double depth);
然后你可以像这样在 然后是函数定义#include <stdio.h>
int main(void)
{
double depth = 10;
printf("celsius_at_depth(%f) = %f\n", depth, celsius_at_depth(depth))
return 0;
}
double celsius_at_depth(double depth);
{
return 10 * depth + 20;
}
答案 1 :(得分:0)
在这里,您将double用作函数的返回类型,但您未在函数中使用return。这是一个错误。
#include <stdio.h>
int main(void)
{
double Depth;
double celsius_at_depth(Depth);
{
return (10*(Depth)+20);
}
//also call the funciton for returning the value
celsuis_at_depth(Depth) ;
printf("is the degree celcius \n");
}