函数声明
“函数定义”是指对函数功能的确立,包括指定函数名,函数值类型、形参类型、函数体等,它是一个完整的、独立的函数单位。而“函数声明”的作用则是把函数的名字、函数类型以及形参类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)。
在书写形式上,函数声明可以把复数头部复制过来,在后面加一个分号;而且在参数表中可以只写各个参数的类型名,而不必写参数名。
基本信息
- 中文名
函数声明
- 定义
函数名(参数1类型 参数1,参数2类型 参数2,……);
- 作用
把函数的名字、函数类型以及形参类型、个数和顺序通知编译系统、以便在调用该函数时系统按此进行对照检查
- 含义
是对编译系统的一个说明
定义
【返回类型】 函数名(参数1类型 参数1,参数2类型 参数2,……);
例子:
#include<stdio.h>
int add(int x,int y); //函数声明语句
main(){
int a,b,c;
c=add(a,b);
printf("%d",c);
}
int add(int x,int y)//函数定义
{ int z; z=x+y; return z; }
文件中声明函数
就像变量可以在头文件中声明,而在源文件中定义一样,函数也可以在头文件中声明,在源文件中定义。
把函数声明直接放在每个使用该函数的源文件中是大多数新手习惯并喜爱的方式,这是合法的。但是这种方式古板且易出错。解决方法就是把函数的声明放在头文件中,这样可以确保对于指定函数其所有声明保持一致。如果函数接口发生变化,则只需修改其唯一声明即可。
将提供函数声明的头文件包含在定义该函数的源文件中,可使编译器能检查该函数的定义和声明是否一致。特别地,如果函数定义和函数声明的形参列表一致,但返回类型不一致,编译器会发出警告或出错信息来指出差异。
声明与定义的区别
函数的声明与函数的定义形式上十分相似,但是二者有着本质上的不同。声明是不开辟内存的,仅仅告诉编译器,要声明的部分存在,要预留一点空间。定义则需要开辟内存。