【c++学习笔记】 定义与声明的区别

来源:互联网 发布:数据库已损坏 编辑:程序博客网 时间:2024/06/06 05:35

声明(declaration) ,指定了变量的类型与名称,让程序知道变量的存在.

定义(definition),也做了声明并且还要为其分配储存空间,有事还提供了初始值。(定义是声明)


在一个程序中变量只能定义一次,却可以声明多次。

       存在声明是为了支持单独编译(separate compilation)。单独编译允许文件A中的代码能够使用文件B定义的变量V。声明的存在是为了告诉编译器:文件A中的变量V定义在了其他文件中,请先编译文件A,待遇到变量V的定义后,在给文件A变量V分配存储空间或者赋值。

通常为了获得一个不是定义的声明,我们需要使用extern关键字,并且不能进行初始化。

注意:

*不要把变量定义放入.h文件。这样导致重复定义错误。

*尽量使用static 关键字把变量定义限制于该源文件定义域,除非变量被设计成全局的。

*可以在头文件声明一个变量,在用的时候包含这个文件的声明了这个变量。


头文件中不可以放变量的定义,一般只放声明变量。

例外:

1. 值在编译时就已知的const变量的定义可以放到头文件中 :const int num (10);

2.类的定义可以放到头文件中

3.inline 函数






0 0