float pie = 3.14;
int main()
{
float r,res;
printf("Enter radius value\n");
scanf("%f", &r);
res=area( r );
printf("Area = %f\n",res);
//printf("Circumference = %f\n", circum( r ));
}
float area( float r )
{
return pie * r * r;
}
我将错误视为' area'的错误类型以及之前的隐含声明' area'在这里,但如果我改为整数
这个代码工作正常在IDE中它可以正常工作,如果我将该代码更改为整数浮点饼= 3.14;
int main() {
int r,res;
printf("Enter radius value\n");
scanf("%d", &r); res=area( r );
printf("Area = %d\n",res);
}
int area( int r )
{
return pie * r * r;
}
没有声明它适用于整数,但对于浮点数我得到错误为什么?
答案 0 :(得分:1)
C允许隐式函数声明,因为你在第一次调用它之前没有给出一个显式函数声明,所以用这个原型隐式声明它:
int area(); // Implicit arguments
以后当你发表真实声明时,他们会发生冲突。
如果您希望函数返回实际的浮点数,提供前向声明:
float area(float);
在int main()
之前添加上述行并解决问号。
顺便说一下,从C11标准(ISO / IEC 9899:2011)开始,隐式函数声明被删除。
答案 1 :(得分:0)
每当您在整个程序中使用通用术语或变量时 就像你在这里做的那样
validatorFactory
改为写
float pie = 3.14
并且出现了错误, 无论何时使用函数,都必须提供它的明确声明,或者换句话说它的原型。 在C文件上键入此内容
#define pie 3.14 //this is a macro
或
float area(float r)
如果你觉得懒惰,那么在主要功能之前使用你的功能,而不是在主功能之后使用它。
答案 2 :(得分:-1)
你应该在函数定义后进行函数调用。否则在头文件中声明函数并使用它。