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

作者&投稿:彤味 (若有异议请与网页底部的电邮联系)
C++中,函数的声明与函数的定义有什么区别?~

函数的声明与函数的定义的区别:
声明:一般在头文件里,对编译器说:这里我有一个函数叫function() 让编译器知道这个函数的存在。定义:一般在源文件里,具体就是函数的实现过程 写明函数体。
你还可以这样理解:
首先下图中的程序执行时,电脑是从上到下执行的。
也就是说假如没有函数的声明那一句,当函数执行到函数调用这一句时,电脑不知道fun是什么东西,他不知道在下面有这个函数的具体实现。
因此,需要声明下,告诉电脑,确实有这个东西存在,是函数,在下面有定义。

扩展资料:

集成开发环境(IDE)

Visual Studio (Visual C++)
C++ Builder
kDevelop
Anjuta
Code::Blocks:开放源码的全功能的跨平台C/C++集成开发环境 。
Visual Mingw
Ideone
Eclipse CDT
Compilr
Code Lite
Netbeans C++
集成开发环境(IDE),功能齐全,调试功能很强,程序编好后,可以立刻在环境中调试以获得初步测试结果,然后,可以方便地做成beta版形式,拿到实际环境中进一步测试,最后做成软件发行版。

编译器
Dev C++
Ultimate++
Digital Mars
C-Free
MinGW
Tiny C Compiler
参考资料:百度百科-C++

函数先声明才可以被调用,如同变量先声明后使用。函数的声明也可以和函数定义分开。一个函数只可以定义一次,但是可以声明多次。
函数声明由函数返回类型、函数名和形参列表组成。形参列表必须包括形参类型,但是不必对形参命名。
函数原型即是上述所说的三个元素:函数返回类型、函数名和形参列表。
也就是说是通过函数原型进行函数声明的!

声明与定义的区别:

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

函数的定义

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

函数的声明

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

拓展资料:

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

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



函数声明表示有这么个函数了,函数定义就是具体实现了。
举个例子:
函数声明:
int fun(int a, int b);

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

函数声明就像是函数定义的头部,比较简略,函数是用来调用的,如果函数定义部写到调用的位置后面,执行到调用位置,后面根本没执行就找不到了,当然报错了,就要在前面加声明,表示有这个函数,反之先写函数体,后调用声明就用不了,不在同一源文件,道理也是如此。

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

函数声明:
返回类型 函数名(参数类型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()中写函数声明!

函数的声明是相当于定义了一个函数的名字,即在程序中该名字就代表了一种操作,但声明中并不会说明该函数是怎么产生作用的;而函数的定义就是具体说明了函数的具体作用,即实现过程。
例如 void output(int x);//是一个函数的声明,它一般位于主函数的前面;
void main()
{int x;
cin>>x;
output(x);//函数的调用
}
void output(int x){ cout<<x<<endl;}//函数的定义,即指定了函数的具体操作。


C++中函数声明与函数原型有什么区别
函数声明与函数定义有一些区别,当然也有联系。主要区别我觉得有以下一些 第一:声明一般在主函数之前,而定义不一定。第二:定义也是一种声明(放在主函数前面),但声明不代表定义。第三:根据c++ primer中的阐述,函数声明只是告诉系统有这样一个函数,但并不给他分配内存空间,只有当函数被定义后才会...

C++中, 函数定义,声明之间什么关系,可以只定义不声明吗
可以 但定义必须要放在调用的前面 就是要让编译器知道我这是一个函数

函数声明和定义的区别是什么?
函数声明时只需写出形参类型。函数定义时必须写出形参类型和变量名。C语言中的标准函数printf便使用这种机制。在声明不确定形参的函数时,形参部分可以使用省略号“…”代替。“…”告诉编译器,在函数调用时不检查形参类型是否与实参类型相同,也不检查参数个数。

在C语言中,函数定义跟函数声明有什么区别有什么不同之出?
int fun(int a, int b);函数定义:int fun(int a,int b){ int c;c=a+b;return c; } 声明就象是定义的头部,比较简略,函数是用来调用的,如果函数定义部写到调用的位置后面,执行到调用位置,

在C语言中,一个函数一般由两个部分组成,它们是——和——
在C语言中一个函数一般由两个部分组成一个是函数头,一个是函数体。函数体是编程语言中定义一个函数功能的所有代码组成的整体。函数体是用花括号括起来的若干语句,他们完成了一个函数的具体功能。函数体内的前面是定义和说明部分,后面是语句部分。函数声明与函数体放在一起组成了函数定义。函数头是指...

函数声明和函数定义(即.h文件和.cpp文件)名字一定相同吗?
可以不同,但是会出问题,比如有些编译器会自动生成 mack 文件,那你就惨了...总会提示你找不到文件

一道C++的选择题,关于函数的声明与定义
B:函数的定义和函数的声明是可以合二为一,只有函数定义只有在一个情况下可以使用:单文件系统编程函数调用在函数定义之前,此时必须进行函数声明 C:函数声明,可以只有函数类型,不带参数标识符,但是必须保证在函数定义的时候,参数的类型,个数和顺序必须与函数声明中的类型 个数 顺序相匹配,否则在一些...

C语言 函数定义 函数声明 区别
楼主可以这样想,C语言中,无论是常量,变量,函数,只有先定义才能使用的。在函数定义时,大脑要往一般的常量,变量定义的方向,切忌先不要想函数的别的。定义好后,把函数的定义先放一边,不管它。接着是函数声明,大家都知道,C语言是有一个主函数main()和0或n个普通函数组成的。由于当代码越长...

用指针传递函数参数 声明和定义什么时候用*a 什么时候用a[]?_百度...
这里谈论的是函数的形式参数问题。函数原型或函数定义头 里的 参数,就是形式参数。int *a 作为形式参数,它可以传递一个int 形变量的地址,可以用来传递一个整型量,或一个数组的首地址。int a[] 可以传递一个数组的首地址,不能用来传递一个整型量。当用来传递一维数组时,你可以用int *a ,...

函数的定义和声明不是一回事()
不是一回事声明只是声明函数返回值,参数类型,定义的话是函数具体实现的功能 比如 int test (char * a, int b);这个是声明 int test (char *a, int b){ printf(===%s==%d=,a,b);return 0;} 函数具体实现

华莹市15027763766: 函数定义和函数声明有什么区别,程序调试和程序测试有什么区别,说的通俗点,感激不尽 -
不阀八正: 函数定义是决定函数实现什么样的功能.例如: int sum(int a, int b) {return (a+b);}函数声明是宣布我有一个这样的函数.例如: int sum(int a, int b);//声明中可以不写形式参数名,等价于int sum(int , int );程序测试是发现错误. 程序调试是解决错误.

华莹市15027763766: 函数声明与函数定义的区别
不阀八正: 函数声明: 返回类型 函数名(参数类型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()中写函数声明!

华莹市15027763766: C++中,函数的声明与函数的定义有什么区别? -
不阀八正: 函数的声明与函数的定义的区别: 声明:一般在头文件里,对编译器说:这里我有一个函数叫function() 让编译器知道这个函数的存在.定义:一般在源文件里,具体就是函数的实现过程 写明函数体. 你还可以这样理解: 首先下图中的程序...

华莹市15027763766: C语言中函数定义和声明有什么区别
不阀八正: C语言中,无论是常量,变量,只有先定义才能使用.函数声明,为了减少函数的混淆,所以要有个函数名,即声明.函数定义是系统要求的,不定义就错误,而函数声明实际上不定义也行,但为了方便和减少错误,人为规定要声明.

华莹市15027763766: C语言中,声明和定义的区别是什么? -
不阀八正: 声明只是一个空壳,不会有具体的函数实现,而定义要实现函数的实现,例如:函数声明 int atoi(char para);函数实现:int atoi(char para) { int result; result=para-38; return result;}//这里函数实现就要有实际的函数定义了

华莹市15027763766: 在C语言里,什么是函数声明,什么是函数定义?二者有何异同? -
不阀八正: 函数声明即告诉编译器我有这个函数,在函数声明时只需指明函数的返回类型,函数名,形参类型,并不一定要写出形参,没有具体内容.例如int fun(int,int);这就是函数声明.当然也可以有形参名.而函数定义就写出函数的具体干什么的,而且参数名必须有(如果有参数类型的话),当然还要和声明保持一致,否则就变重载了.例如:int fun(int a,int b){}就是一个函数定义.

华莹市15027763766: 函数的定义和声明区别? -
不阀八正: 声明只是告诉编译器,有这么一个函数,在该页面中任何地方都可以写该函数,定义只能在头文件中,这个好像是c++.好久没有用过了

华莹市15027763766: 函数的定义和声明不是一回事() -
不阀八正: 不是一回事声明只是声明函数返回值,参数类型, 定义的话是函数具体实现的功能 比如 int test (char * a, int b); 这个是声明 int test (char *a, int b) { printf(=====%s==%d=,a,b); return 0; } 函数具体实现

华莹市15027763766: c语言中对函数的定义与对函数的声明有何不同 -
不阀八正: 函数的定义是实现函数,有函数体的.函数声明只是对函数名,返回值,和参数类型的声明.

华莹市15027763766: 师傅您好,我想说说我对 函数定义 和函数声明这两个概念的理解你看对不. -
不阀八正: 关于函数,有三个概念:函数定义、函数声明、函数调用函数定义:定义一种功能方法,通过代码的形式描述出一种解决问题的方法、步骤函数声明:在使用函数前,进行函数声明,就是告诉编译器,正确的使用该方法的形式,便于编译器进行...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网