c++ 关键字extern(声明)和定义的区别
2024-08-25 05:51:46
extern : extern int i; // declares but does not define i
int i; //declares and defines i
extern 声明不是定义, 也不分配存储空间。它只是说明变量定义在程序的其他地方。程序中变量可以声明多次, 但只能定义一次。
定义: 定义是负责创建与名字相关的实体。
变量声明规定了变量的类型和名字, 在这一点上定义与之相同。 但是除此以外, 定义还需申请内存空间, 也肯能会同时给变量赋初值。
声明和定义之间的区别可能看起来微不足道,但是事实上确是举足轻重的。
任何多个文件中使用的变量都需要有定义分离的声明, 在这种情况下, 一个文件含有变量的定义, 使用该变量的其他文件则包含该变量的声明。
const 对象默认为文件的局部变量。
除非特别声明, const 在全局作用域声明的变量,是那个定义该对象文件的局部变量。 此变量只存在于那个文件中不能被其他文件访问。
通过制定const变量为extern, 就可以在整个程序中访问const 对象。
//file_1.cc
//define and initializes a const that is accessible to other files
extern const int bufSize =fcn();
// file_2.cc
extern const int bufSize;
//use bufSize defined in file_1
for (int index = 0 ; index != bufSize; ++index)
//…..
最新文章
- (实例篇)PHP实现HTTP断点续传的方法
- [bzoj1597][usaco2008 mar]土地购买 (动态规划+斜率优化)
- [C++] socket - 6 [API互斥事件对象实现线程同步]
- log4j.xml配置文件
- 点(Dot)与像素(Pixel)的区别
- 《Effective C++》学习笔记条款13 以对象管理资源
- Android中BroadCast与Activity之间的通信
- objectivc-c---block
- 基于PCA的特征提取
- MFC知识点整理
- valuechange(动态的监听input,textarea)
- PHP Server Nginx 安装
- ffplay.c函数结构简单分析(画图)
- Centos7 时区的设置
- 【转载】利用window.performance.timing进行性能分析
- iOS业务模块化利用CocoaPod入门实践
- golang初识4 - Go 并发
- mysql ANSI_QUOTES 这个sql_mode的作用(字段可以使用双引号)
- webpack 自动发现 entry 的配置和引用方式
- Cookies读写