变量定义和变量声明的区别
2016-01-19 13:34
387 查看
参考原文
变量声明:编译器被通知变量存在,不用为变量申请内存单元。
变量声明包含变量标识符,变量类型,extern修饰 这些信息。不管是新建类型,对象,函数声明,声明是编译器所需要的,声明告诉编译器需要接受对这个标识符的引用。声明有如下形式。
变量定义:编译器为变量申请内存,就是变量定义。
包含变量类型,变量标识符这些信息;定义的本质是实例化或者说实现这个标识符,表现就是在内存中申请一个跟类型等量空间大小的内存空间。变量定义是连接器所需要的,连接器通过变量定义来引用到他们的实体内存空间。下面这些是上面声明的定义:
变量声明:编译器被通知变量存在,不用为变量申请内存单元。
变量声明包含变量标识符,变量类型,extern修饰 这些信息。不管是新建类型,对象,函数声明,声明是编译器所需要的,声明告诉编译器需要接受对这个标识符的引用。声明有如下形式。
[code]externint bar; externint g(int,int); // extern can be omitted for function declarations,函数申明可以省略 double f(int,double); // no extern allowed for type declarations,对于类型声明省略extern也是行的 extern class foo;
变量定义:编译器为变量申请内存,就是变量定义。
包含变量类型,变量标识符这些信息;定义的本质是实例化或者说实现这个标识符,表现就是在内存中申请一个跟类型等量空间大小的内存空间。变量定义是连接器所需要的,连接器通过变量定义来引用到他们的实体内存空间。下面这些是上面声明的定义:
[code]int bar; int g(int lhs,int rhs){return lhs*rhs;} double f(int i,double d){return i+d;} class foo {};
相关文章推荐
- Eclipse、IntelliJ快捷键汇总
- MyEclipse Hibernate 学习总结
- 简化前端开发的javascript工具类收集
- 被误解的MVC和被神化的MVVM
- iOS提交AppStore后申请加急审核
- H-Index II
- php如何计算一个字符串的每个字符出现的次数
- javascript获取页面宽度高度及屏幕分辨率
- [华为机试练习题]50.求M的N次方的最后三位
- NOIP200805 笨小猴(低效算法)(一大桶水)【A006】
- C# wpf WebBrowser遮挡上层UI的解决办法
- iOS之UNIX(iOS追根溯源)
- oracle11g密码过期处理方法
- Cocoa Touch事件处理流程--响应者链
- mybatis jdbcType 对应javaType
- 流迭代器的一些作用
- iOS多线程理解
- 低功耗蓝牙BLE [学习笔记]
- iOS提交AppStore后申请加急审核
- no dll in java.library.path