函数声明和函数定义的关系是什么?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 13:27:56
函数声明和函数定义的关系是什么?

函数声明和函数定义的关系是什么?
函数声明和函数定义的关系是什么?

函数声明和函数定义的关系是什么?
要想在其他文件而不是包含函数定义的文件中使用该函数,我们必须要用到另外一种函数声明机制函数声明由函数返回类型、函数名和参数表构成.这三个元素被称为

对函数而言,函数的声明是函数的原型,函数的定义是对函数功能的定义。对被调函数的声明是在主调函数的声明部分中的,而函数的定义显然是不在声明部分的范围内的,它是个独立的模块。
  对变量而言,在声明部分出现的的变量的情况有两种:一种是需要建立存储空间的,(如"int a;"),另一种是不需要建立存储空间的(如“extern a;”).前者为定义性声明,或简称为定义;后者为引用性声明。广义滴说,...

全部展开

对函数而言,函数的声明是函数的原型,函数的定义是对函数功能的定义。对被调函数的声明是在主调函数的声明部分中的,而函数的定义显然是不在声明部分的范围内的,它是个独立的模块。
  对变量而言,在声明部分出现的的变量的情况有两种:一种是需要建立存储空间的,(如"int a;"),另一种是不需要建立存储空间的(如“extern a;”).前者为定义性声明,或简称为定义;后者为引用性声明。广义滴说,声明包括定义,但并非所有的声明都是定义。对于“int a;”而言,它既是声明又是定义;而“extern a;”,它是声明而不是定义。
一般为了叙述方便,把建立存储空间的声明称定义,而把不需要建立存储空间的声明称为声明,
此处为狭义的声明,但好理解

收起

先举个例子:
int max(int,int); //①函数声明
int main()
{
int a,b,c;
a=2;b=3;
c=max(a,b);
//输出神马的...
return 0;
}
int max(int x,int y) //②定义max这个函数
{
return ...

全部展开

先举个例子:
int max(int,int); //①函数声明
int main()
{
int a,b,c;
a=2;b=3;
c=max(a,b);
//输出神马的...
return 0;
}
int max(int x,int y) //②定义max这个函数
{
return x>y?x:y;
}
讲通俗一点,函数声明就是告诉编译器这是一个函数,上面的程序中如果去掉①,那么在main函数中调用max函数的时候编译器将会报错,因为此时还没有定义max函数,编译器不知道这个max是什么,如果不想写函数声明,可以将函数定义放在它的使用之前,这样编译器就知道max是个函数了;函数定义就是具体定义函数的功能是什么,这就不用多讲了吧

收起