在下面的程序中,我使用了两个函数 prd() 和 display()。在 main() 中调用它们之前,我没有在 main() 之前声明它们,并且我在 main() 之后定义了这两个函数。然而, while prd( ) 在 main() 中工作顺利,调用 display() 会显示警告“先前隐式声明 'display' 在此”。 display() 的不同之处在于,它有一个警告,但其他函数 prd() 没有警告?我一开始就没有声明它们。仍然有由于调用其中一个而发出的警告,但另一个工作正常。
#include<stdio.h>
int main()
{
int x=8,y=11;
printf("The product of %d & %d is %d",x,y,prd(x,y));
display();
return 0;
}
int prd(int x,int y)
{
return x*y;
}
void display()
{
printf("\n Good Morning");
}
PS:如果你能回答这个第二个问题——“如果有定义的话,C 中的函数声明根本就没有必要吗?”我真的很感激。我有在 main 之前声明程序的所有函数的习惯() 函数,然后在 main() 函数之后定义它们。我错了吗?
当您使用未声明的display()
编译器隐式声明它就像返回一样int
.
当编译器最终看到定义时display()
,它看到返回类型是void
,但已经假设它是int
因此定义和隐式声明不同,因此出现错误/警告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)