C语言中声明函数有什么用? 为什么有的代码不用声明函数就能直接使用? 简述printf()函数在程序中为什么不用声明,就可以直接引...

作者&投稿:门宗 (若有异议请与网页底部的电邮联系)
代码的运行是自上到下的。如果你的函数在被调用的地方的上面。那么你就可以不需要声明。反之,如果你的函数在调用处的下面。那么你必须要声明,不然你的程序没法调用函数

程序的运行永远是从main函数开始的 而不论main函数在程序中的位置如何 所以函数执行并不是从上到下的 但是 编译是从上到下的 程序都是先编译后执行的 所以如果main函数调用的函数写在main函数之前 就不用在main中声明了

我短路了,哪个函数没有声明就直接用的,能否举个例?
写在调用代码前面的,这不也叫变相声明吗?

为什么C语言有函数声明才能调用,二Java不用函数声明就可以直接调用?(希望把原理说的清楚一些)~

(1)一种是需要建立存储空间的(定义、声明)。例如:inta在声明的时候就已经建立了存储空间。(2)另一种是不需要建立存储空间的(声明)。例如:externinta其中变量a是在别的文件中定义的。例如:在主函数中intmain(){externintA;//这是个声明而不是定义,声明A是一个已经定义了的外部变量//注意:声明外部变量时可以把变量类型去掉如:externA;}intA;//是定义,定义了A为整型的外部变量(全局变量)例如:输入两个实数,用一个函数求出它们之和。#includeintmain(){floatadd(floatx,floaty);floata,b,c;printf("Pleaseenteraandb:");scanf("%f,%f",&a,&b);c=add(a,b);printf("sumis%f
",c);return0;}floatadd(floatx,floaty){floatz;z=x+y;return(z);}

因为头文件里面#include含有了那个函数的实现。
楼主说的要先函数的声明,是它的函数在前面先声明后面再实现。
可以先看我这个例子(从最近写的挑了一个),已经对函数声明了并实现了。主函数可以直接做
#include
float faverage(int s[],int n,int *max,int *min)
{
float average=s[0];
*min=s[0];
*max=s[0];
for(int i=1;i<n;i++)
{
average=s[i]+average;
if(s[i]<*min)
{
*min=s[i];
}
if(s[i]>*max)
{
*max=s[i];
}
}
average=average/n;
return average;}
int main()
{
int a[5]={1,2,3,4,5};
int max,min;
float average;
average=faverage(a,5,&max,&min);
printf("average=%f
",average);
printf("max=%d
",max);
printf("min=%d
",min);
return 0;
}