C++中变量的声明与定义的异同
2015-11-10 21:20
411 查看
分离式编译机制允许将程序分割为若干个文件,每个文件可以被独立编译。这种方式必须解决一个问题,即如何在多个文件之间共享代码?(例如一个全局变量,在一个一个文件中被定义,如何在其他文件中被使用?)
为了解决这个问题,即多个文件中使用同一个变量,C++将声明和定义分开:
(1)变量在其中一个文件中定义,且只能在一个变量中定义
(2)在其他需要使用的文件中,必须对该变量进行声明
声明(declaration):使得名字为程序所知,一个文件如果想使用别处定义的的名字,必须要包含那个名字,通过
extern int i;
定义(definition):负责创建与名字关联的实体
int i;
int i = 2;
声明与定义的相同之处:规定了变量的类型和名字
声明与定义的不相同之处:
(1)定义时为变量申请了存储空间,声明不会
(2)定义时,可能为变量赋一个初始值,声明不会
注意:任何包含了显示初始化的声明即成为定义
extern int i = 2;
为了解决这个问题,即多个文件中使用同一个变量,C++将声明和定义分开:
(1)变量在其中一个文件中定义,且只能在一个变量中定义
(2)在其他需要使用的文件中,必须对该变量进行声明
声明(declaration):使得名字为程序所知,一个文件如果想使用别处定义的的名字,必须要包含那个名字,通过
extern int i;
定义(definition):负责创建与名字关联的实体
int i;
int i = 2;
声明与定义的相同之处:规定了变量的类型和名字
声明与定义的不相同之处:
(1)定义时为变量申请了存储空间,声明不会
(2)定义时,可能为变量赋一个初始值,声明不会
注意:任何包含了显示初始化的声明即成为定义
extern int i = 2;
相关文章推荐
- Binary Tree Level Order Traversal II(LeetCode)
- C语言第十一天课堂笔记<详细+注释>
- C语言第十天课堂笔记<详细+注释>
- C语言第八天课堂笔记<详细+注释>
- C语言第九天课堂笔记<详细+注释>
- C++数组与指针详解
- C++数组与指针详解
- C语言第六天课堂笔记<详细+注释>
- C语言第七天课堂笔记<详细+注释>
- C语言第五天课堂笔记<详细+注释>
- C语言第四天课堂笔记<详细+注释>
- C语言第三天课堂笔记<详细+注释>
- C语言第二天课堂笔记<详细+注释>
- C语言第一天课堂笔记<详细+注释>
- c/c++ strspn / strstr / strchr
- C++模式(三)模板方法模式
- C++—特殊成员函数
- 由C++构造函数初始值列表想到的
- C++编程经验-返回局部变量的讨论
- c++primer第五版第十二章12.20习题用一个StrBlobPtr打印出StrBlob中的元素