不是,如果你把自定义函数写在主函数前面的话,就是说写在开始的话,就可不用声明了。
创新互联专注于企业成都全网营销、网站重做改版、正安网站定制设计、自适应品牌网站建设、H5页面制作、电子商务商城网站建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为正安等各大城市提供网站开发制作服务。
否则声明是必需的。
自定义函数声明void表明函数无返回值,但不决定自定义函数是否有参数,这是两回事
如void fun(int a, int b) { ... ... }函数带参数,但无返回值
若声明类型为void fun(void) { ... ... }或void fun() { ... ... }则表明函数既没有参数,也没有返回值
若为float fun(int a, int b) { ... ... }表明函数有返回值,返回值类型为float,函数也带参数
若为float fun(void) { ... ... }表明函数有返回值,返回值类型为float ,不带参数
明白了吗?
有些自定义函数可能会被频繁的调用,所以写在一个C文件里是不太方便的。应该把这些自定义的函数写在一个C文件里,同时在一个头文件.h文件里声明。主函数可以通过引用该头文件然后调用需要的自定义函数。
举例如下:
1. 在头文件(.h)里声明自定义函数,定义用户写的函数;
2. 在一个C语言文件里写下自定义函数的实现方式,可以写在主函数前,也可在主函数后(需在头文件前声明函数);
3. 在主函数中调用自定义函数,别忘了头文件的声明;
4. 最后编译所有的涉及到的C文件;
#include stdio.h
void number(int);
int main()
{
for(int i = 0;i10;i++)
{
number(i);
“函数定义”是指对函数功能的确立,包括指定函数名,函数值类型、形参类型、函数体等,它是一个完整的、独立的函数单位。
而“函数声明”的作用则是把函数的名字、函数类型以及形参类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)。
在书写形式上,函数声明可以把复数头部复制过来,在后面加一个分号;而且在参数表中可以只写各个参数的类型名,而不必写参数名。
C语言不同于Java语言,在Java语言中,在一个类中,定义函数/方法后,在调用时不需要声明。在C语言中定义函数后,在使用前,需要在main函数前进行声明,否则会报错。
或者将函数定义在main函数的前面,则不需要声明
注意:在其他函数中调用自定义的函数时,也是要在调用者前进行声明,或者定义在调用者前,否则会报错无法使用
#includestdio.h
int getMax(int a, int b) {
if (a b) {
return a;
}
else {
return b;
}
}
void main() {
int t=getMax(12, 21);
printf("%d\n", t);
getchar();
}
扩展资料:
关于函数的概念我们可以这样理解,函数是一个功能的集合,它可以根据输入完成特写的功能,并将结果输出。当然有时候函数只是为了实现一些特写功能而并不一定要有输入或输入。
我们想要自己编写一个函数需要编写两部分内容:声明和定义。函数的声明就是告诉编译器我们想要定义一个函数,并明确规定其返回值(输出)、函数名、参数表(输入)。声明函数的语法如下:
type function_name(type var);
取决于你要传递的实际类型
如果你要传递一维数组或者一维指针,那么double*或者double[]没有区别
参数用数组时,会自动转变成对应指针
如果是二维数组,就必须用数组形式或者数组指针形式
比如double [3][4]
可以就写double[3][4]
也可以double[][4]
也可以double(*)[4]
但是不能写成double**
(1) 一种是需要建立存储空间的(定义、声明)。例如:int a在声明的时候就已经建立了存储空间。 (2) 另一种是不需要建立存储空间的(声明)。例如:extern int a其中变量a是在别的文件中定义的。
例如:在主函数中 int main()
{ extern int A; //这是个声明而不是定义,声明A是一个已经定义了的外部变量
//注意:声明外部变量时可以把变量类型去掉如:extern A;
}
int A; //是定义,定义了A为整型的外部变量(全局变量)
例如:输入两个实数,用一个函数求出它们之和。
#include stdio.h
int main()
{ float add(float x, float y);
float a,b,c;
printf("Please enter a and b:");
scanf("%f,%f",a,b);
c=add(a,b);
printf("sum is %f\n",c);
return 0;
}
float add(float x,float y)
{ float z;
z=x+y;
return(z);
}