定义和声明的区别

之前学习C/C++的时候,都没去注意变量的定义和声明的具体区别,也随意将它们放在头文件,今日看C++ Primer,才发现原来变量的定义和声明之间的区别竟然如此之大,而且区别它们两个竟然如此重要。

变量的定义用于为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。

声明用于向程序表明变量的类型和名字。定义包括声明:当定义变量时我们声明了它的类型和名字。可以通过使用extern关键字声明变量名而不定义它。不定义变量的声明包括对象名,对象类型和对象类型前的关键字extern:

extern int i;//声明而没有定义i

int i;//声明和定义了i

extern int i=0;// 声明和定义了i

extern声明而没有定义,也不分配存储空间。一个程序中,可以声明多次,但只能定义一次。

 

头文件用于声明而不是用于定义。因为头文件包含在多个源文件中,所以不应该含有变量或函数的定义。对于头文件不应该含有定义这个规则,有三个例外的:头文件可以定义类、值在编译时就已经知道的const对象和inline函数。这些实体可以在多个源文件中定义,只要每个源文件中的定义是相同的。

所以在编写头文件的时候,定义和声明的区别是很重要的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值