函数声明与函数定义的区别

 我来答
超越超越o
高粉答主

推荐于2019-10-26 · 说的都是干货,快来关注
知道答主
回答量:141
采纳率:68%
帮助的人:5.3万
展开全部

声明与定义的区别:

函数的声明与函数的定义形式上十分相似,但是二者有着本质上的不同。声明是不开辟内存的,仅仅告诉编译器,要声明的部分存在,要预留一点空间。定义则需要开辟内存。

函数的定义

函数的定义是一个完整的函数单元,包含函数类型、函数名、形参及形参类型、函数体等。在程序中,函数的定义只能有一次。函数首部与花括号间不加分号。

函数的声明

函数声明只是对编译系统的一个说明:函数声明是对定义的函数的返回值的类型说明,以通知系统在本函数中所调用的函数是什么类型。不包含函数体(或形参),调用几次该函数就应在各个主调函数中做相应声明。函数声明是一个说明语句,必须以分号结束。

拓展资料:

C语言编译系统是由上往下编译的.一般被调函数放在主调函数后面的话,前面就该有声明.不然C由上往下的编译系统将无法识别。正如变量必须先声明后使用一样,函数也必须在被调用之前先声明,否则无法调用!函数的声明可以与定义分离,要注意的是一个函数只能被定义一次,但可以声明多次。

函数声明由函数返回类型、函数名和形参列表组成。形参列表必须包括形参类型,但是不必对形参命名。这三个元素被称为函数原型,函数原型描述了函数的接口。定义函数的程序员提供函数原型,使用函数的程序员就只需要对函数原型编辑即可。

cxlmgj1314
推荐于2017-09-28 · TA获得超过2.4万个赞
知道大有可为答主
回答量:3012
采纳率:94%
帮助的人:381万
展开全部
函数声明表示有这么个函数了,函数定义就是具体实现了。
举个例子:
函数声明:
int fun(int a, int b);

函数定义:
int fun(int a,int b)
{ int c;
c=a+b;
return c; }

函数声明就像是函数定义的头部,比较简略,函数是用来调用的,如果函数定义部写到调用的位置后面,执行到调用位置,后面根本没执行就找不到了,当然报错了,就要在前面加声明,表示有这个函数,反之先写函数体,后调用声明就用不了,不在同一源文件,道理也是如此。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
apparrr
2013-03-20
知道答主
回答量:10
采纳率:100%
帮助的人:1.5万
展开全部
对函数而言,函数的声明是函数的原型,函数的定义是对函数功能的定义。对被调函数的声明是在主调函数的声明部分中的,而函数的定义显然是不在声明部分的范围内的,它是个独立的模块。
  对变量而言,在声明部分出现的的变量的情况有两种:一种是需要建立存储空间的,(如"int a;"),另一种是不需要建立存储空间的(如“extern a;”).前者为定义性声明,或简称为定义;后者为引用性声明。广义滴说,声明包括定义,但并非所有的声明都是定义。对于“int a;”而言,它既是声明又是定义;而“extern a;”,它是声明而不是定义。
一般为了叙述方便,把建立存储空间的声明称定义,而把不需要建立存储空间的声明称为声明,
此处为狭义的声明,但好理解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HarborLee
推荐于2017-10-03 · TA获得超过1007个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:110万
展开全部
函数声明:
返回类型 函数名(参数类型1 参数名1,·····,参数类型n 参数名n);
如:int fun(int a, int b);
void display();
float fn1(float x);

函数定义:
返回类型 函数名(参数类型1 参数名1,·····,参数类型n 参数名n)
{
函数体······
}
如:int fun(int a,int b)
{ int c;
c=a+b;
return c; }

在程序中,如果main()函数在前,必须在mian()中写函数声明;如果函数在main()前面,可以不在main()中写函数声明!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
石头翔子
2009-10-22 · 超过18用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:49.2万
展开全部
函数的声明是相当于定义了一个函数的名字,即在程序中该名字就代表了一种操作,但声明中并不会说明该函数是怎么产生作用的;而函数的定义就是具体说明了函数的具体作用,即实现过程。
例如 void output(int x);//是一个函数的声明,它一般位于主函数的前面;
void main()
{int x;
cin>>x;
output(x);//函数的调用
}
void output(int x){ cout<<x<<endl;}//函数的定义,即指定了函数的具体操作。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式