程序级的全局变量
来源:互联网 发布:矩阵特征分解证明 编辑:程序博客网 时间:2024/06/06 07:28
本文将探讨程序级的全局变量在多文件中的使用。
1. const全局变量
const变量默认为文件级的局部变量:
//test.cppconst int SIZE = 10;以上定义的变量不能其它源文件中访问。
很多人定义const全局变量时,会用到类似如下的代码结构:
//common.hconst int SIZE = 10;//func1.cpp#include "common.h"void func1 { //use of SIZE}//func2.cpp#include "common.h"void func2 { //use of SIZE}
在以上的程序中,分别在三个文件中定义了相同名字的变量(若在func1和func2函数中添加一条语句std::cout << &SIZE << std::endl;就会发现,变量的地址是不同的)。因为const变量默认为文件级的局部变量,所以整个程序不会产生重定义SIZE的错误,程序运行正常,只是内存浪费了一点。如果要使程序只有一份SIZE变量,则需要加extern修饰符:
extern const int SIZE = 10;以上的extern修饰符表示:SIZE变量可以被其他源文件引用。即SIZE是程序级的全局变量。
于是,修改之前的代码后,如下:
//common.hextern const int SIZE;//common.cpp#include "common.h"extern const int SIZE = 10;//func1.cpp#include "common.h"void func1 { //use of SIZE}//func2.cpp#include "common.h"void func2 { //use of SIZE}
以上common.h头文件中,对SIZE变量进行了声明,SIZE变量的定义则在common.cpp中。
References:
《C++ Primer中文版(第4版)》P49-50,P59-60
http://en.wikipedia.org/wiki/Static_variable
- 程序级的全局变量
- 全局变量程序
- 第十二周项目全局变量的程序1
- 全局变量让看上去合理的程序出问题
- 同名的全局变量和局部变量对程序的影响
- 微信小程序 全局变量
- 微信小程序设置全局变量
- 微信小程序全局变量
- 微信小程序改变全局变量
- 微信小程序设置全局变量
- 微信小程序全局变量
- 关于程序的可读性、通用性、可靠性——全局变量
- 程序能够使用的C / C + +运行期全局变量
- 编程:含有全局变量的程序阅读(2)
- 编程:含有全局变量的程序阅读(1)
- 小程序开发过程中 全局变量、函数的应用方法
- 阅读程序(2)---全局变量
- 微信小程序中设置全局变量
- C语言程序100例之C#版-027
- 【js与jquery】jquery之放大镜插件源码分析
- C++ Primer 笔记 第二章
- 12 Interesting C Interview Questions and Answers
- C++ Primer 笔记 第三章
- 程序级的全局变量
- 原来R可以被java调用
- C语言如何实现遍历目录的功能
- 跟风晒晒自己作为一位大数据程序员看过的还不错的书 -持续更新中 .
- 程序员相关的笑话,爆笑如雷!
- 一些关于文档聚类和搜索结果聚类算法的开源项目
- viewgroup的使用方法
- 生成文本聚类java实现 (1)
- C#彩色艺术化二维码样式设计(仅说思路)