什么是定义,什么是声明。

原创 2016年08月30日 20:53:54

定义和声明有什么区别:

  举一个例子:

A),int a;B),extern int a;

那个是定义,那个是声明呢?或者都是定义,又或者都是声明。

这个问题,在我工作中和学习中,从来没有被教过和问过。

在计算机中,到底什么是定义,什么是声明,定义和声明的区别归根到底在哪?


先来说一下什么是定义:

所谓定义就是创建一个对象,为这个对象分配一块内存,同时给这块内存取一个名字,这个名字就是我们常说的对象名或变量名。但是注意,这个名字一旦和这块内存关联起来,他们就是一个整体,生死相依,不离不弃。并且这块内存的位置也不能被改变。一个对象或者变量,在一个区域内(全局,文件,函数,循环等)只能被定义一次,如果定义多次,编译器会提示你重复定义同一个变量或对象。

再来说一下声明:

第一层含义:告诉这个编译器,这个名字已经匹配到一块内存上路了,后面的代码用变量火女对象实在别的地方定义的。定义是原件,原件唯一有效,那么声明就像复印件,可以重复打印,可以多次声明。

第二层含义:告诉编译器,这个变量或者对象的名字已经被占用了,别的地方,不能在使用这个名字作为其他的变量或者对象名;比如在电影票,你买了一张票后提示他人该位置已经被其他上占用了。

这种声明最典型的例子就是函数参数的声明,例如:

int func(int a, char b);

        这一样一疏理后,应该能够区分出:A是定义,B是声明。

  那么到底什么是定义和声明的根本区别:是内存。

定义创建对象,并为这个对象分配了内存;而声明只是将与内存关联的对象名进行外域可见性的扩充,看不到,可以继续声明。

版权声明:本文为博主原创文章,未经博主允许不得转载。

定义和声明

 1. 变量的定义、声明变量的声明有两种情况: 一种是需要建立存储空间的。例如:int  a。在声明的时候就已经建立了存储空间。这种声明是"定义性声明(defining declaration)",即...

C++定义与声明 区别

C++ 声明 定义
  • sjxbf
  • sjxbf
  • 2011年04月08日 17:13
  • 30161

判断两个( float )变量是否相等以及和 0 值比较方法

浮点数的表示是不精确的,float 和 double 都不能保证可以把所有实数都准确的保存在计算机中。 由于浮点数的表示是不精确的,所以不能直接比较两个数是否完全相等。一般都是在允许的某个范围内认为某...

c++ 类的声明和定义

  • 2014年02月12日 00:56
  • 17KB
  • 下载

C 函数声明, 函数原型, 函数定义

函数声明的发展1 隐式函数声明 implicit function declaration main 函数和 printf 函数返回值类型为 int, 若不声明, 编译器默认函数返回值为 int 类型...

CBS_定义与声明 关键字

  • 2011年11月23日 11:16
  • 37KB
  • 下载

模板类声明和定义为何要写一起

http://www.gois.ws/showfile.asp?id=460:0:0 如何组织编写模板程序  发表日期: 1/21/2003 12:28:58 PM  发表人: Nemanj...

C++函数声明和定义

  • 2011年07月18日 14:42
  • 49KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:什么是定义,什么是声明。
举报原因:
原因补充:

(最多只允许输入30个字)