功能声明中的参数名称(无类型)

时间:2015-03-26 00:49:23

标签: c

所以,我正在完成一项任务,而我的老师并没有很好地解释这些功能。我会节省一些时间并显示发生错误的主要部分:

 #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的参数类型?

编辑:我已经查看了网站上的错误,但我没有看到与我的代码格式相同的格式,所以我觉得最好重新发布

2 个答案:

答案 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");
}