什么是声明?什么是定义?

这是一个基础且重要的知识。什么是声明,什么是定义。


让我们先来看看下面的两个例子

int    a;
extern int    a;


这两个里面,哪个是声明? 哪个是定义?


要解决这个问题,当然我们需要先知道什么是声明,什么是定义。


声明:

1)       告诉编译器,这个变量名或对象已经匹配到一块内存空间上了。下面的代码用到变量或对象是在别的地方定义。声明可以出现多次。

2)       告诉编译器,这个名字已经被预定了,别的地方再也不能它来作为变量名或对象名。这种声明最典型的例子就是函数参数的声明。


定义:

就是编译器为一个变量或对象分配一块内存空间,并给它取上名字。这个名字就是变量名或对象名。并且,在这个变量的作用域中只能被定义一次,当被定义多次的时候,编译器会报错。说你重覆定义同一个变量或对象。


或许还有个疑问。例子2 语句中的 extern 是什么作用?这里就这个问题简单说说 extern 它的其中一个作用。

extern 可以修饰变量,即系放在变量前。其作用是声明 我(extern)修饰的变量其定义在别的文件中。不在当前文件。


OK,现在我们知道了其各自的含义了。那么对于上面两个例子,我想答案早已浮现了。

int    a;               //此语句为定义
extern int    a;        //此语句为声明


对于声明和定义,其实它们有个很明显的区别:

定义,创建了对象并分配内存空间。声明,没有分配空间




  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值