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

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

定义和声明有什么区别:

  举一个例子:

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

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

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

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


先来说一下什么是定义:

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

再来说一下声明:

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

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

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

int func(int a, char b);

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

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

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

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

相关文章推荐

C++定义与声明 区别

C++ 声明 定义
  • sjxbf
  • sjxbf
  • 2011-04-08 17:13
  • 28160

定义和声明

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

linux内核驱动模块编程框架---(hello world模块)

linux内核驱动模块编程框架,模块Makefile文件,模块的常用操作命令(模块的加载卸载命令);重点来说下注册的回调函数,static int __init hello_init(void)和st...

内核编程的hello world!

hello,Kernel! 2010年9月13日 由 edsionte 留言 » 学习内核模块编程,第一个小程序当然是 hello,kernel!了,这应当算是一个惯例了。以前大三的时候在实验...

Linux内核模块编程——hello,world

最简单的内核模块编程——hello,world

c++ 类的声明和定义

  • 2014-02-12 00:56
  • 17KB
  • 下载

C++变量的声明与定义

欢迎到我的新博客访问原文链接:http://www.61mon.com/index.php/archives/163/  声明,是用以告诉编译器类型及其细节,本身并不涉及内存分配;   定义,即内存...

CBS_定义与声明 关键字

  • 2011-11-23 11:16
  • 36KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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