【C++注意事项】2 变量声明和定义
来源:互联网 发布:淘宝账号注册首页登录 编辑:程序博客网 时间:2024/05/01 16:45
不可能将所有的C++程序放到一个文件中咯,因此C++就支持了分离式编译(separate compilation)机制,它允许将程序分为若干个文件,每个文件可被独立编译。这样说明了,当你的程序有很多文件时,修改其中一个文件后不需要将所有文件都重新编译一遍,只需要编译修改过的就好,然后将它们都链接起来。
C++是如何支持分离式编译的呢?通过将声明和定义分离开来。
声明(declaration)使得名字为程序所知,一个文件如果想使用别处定义的名字则必须包含该名字的声明。
定义(definition)负责创建与名字关联的实体。
一个声明语句由一个基本数据类型(base type)和紧随其后的一个声明符(declarator)列表组成。
定义还需要申请存储空间,也可能会为变量赋一个初始值。
如果想声明一个变量而非定义它,就在变量名前添加关键字extern关键字标记的变量赋一个 初始值,但是这么做也就抵消了extern的作用。extern语句如果包含初始值就不再是声明,而变成了定义。
extern int i; // 声明i而非定义iint j; // 声明并定义j
在函数体内部,如果试图初始化一个由extern关键字标记的变量,将引发错误。
// 错误int main(){ extern int i; int i=10; return 0;}
变量能且只能被定义一次,但是可以被多次声明。
// 这样是可以得extern int i;extern int i;extern int i;int main(){ int i=10; return 0;}
如果要在多个文件中使用同一个变量,就必须将声明和定义分离。但是此时变量的定义就必须出现在且只能出现在一个文件中,而其他用到该变量的文件必须对其进行声明,却绝对不能重复定义。
另外C++还会在编译阶段进行类型检查(type checking),所以也称C++是一种静态类型(statically typed)语言。程序越复杂,静态类型坚持越有助于发现问题。然后,前提是编译器必须知道每一个实体对象的类型,这就要求我们在使用某个变量之前必须声明其类型。
感谢您的访问,希望对您有所帮助。 欢迎大家关注、收藏以及评论。
我的更多博客文章:NoMasp博客导读
为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp
- 【C++注意事项】2 变量声明和定义
- C变量的声明和定义
- C 语言变量的声明和定义
- C语言中变量声明和定义
- C变量的声明和定义
- c语言变量的声明和定义
- C变量的声明和定义
- C变量的声明和定义
- C语言中变量声明和定义
- 变量声明和定义
- 【C++】变量(四) 变量的声明和定义
- 变量和函数的声明与定义(C/C++)
- C变量和函数的声明和定义
- C语言中变量和函数的声明与定义
- c/c++中变量的声明和定义
- C语言中变量和函数的声明与定义
- [水滴]C中变量的定义和声明的区别
- C语言中变量的定义和声明
- 二叉树的基本操作和遍历
- win32使用ATL显示C#COM窗体
- 【陈式兔子定理】本科生、硕士生、博士生、博士后之区别
- css中的:before 和 :after
- android摇一摇
- 【C++注意事项】2 变量声明和定义
- ACdream 1430 SETI 后缀自动机
- Oracle使用APEX与ADF快速开发漂亮的WEB应用
- Android UI 之一步步教你自定义控件(自定义属性、合理设计onMeasure、合理设计onDraw等)
- 【Java】Java集合框架源码和数据结构简要分析——List
- Intellij IDEA搭建Android Wear开发环境(Windows环境,含创建模拟器)
- 计算机学习总结
- poj 1163/3176 数字三角形【简单DP】
- POJ 3468 【线段树区间更新-成段更新】