博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
全局变量、静态全局变量和全局常量
阅读量:5159 次
发布时间:2019-06-13

本文共 609 字,大约阅读时间需要 2 分钟。

一、全局变量 

  一般最好把全局变量声明在cpp文件中(如果在.h文件中定义的话,多层包含可能会引起重复定义的错误)

  cpp中定义好了之后,可以在.h文件中利用 extern关键字进行 声明(extern 声明表示在此处引入外部定义变量的声明,而不是在本编译单元中再声明一个同名的局部变量)然后其他文件要使用这些变量的时候,只要#include 这个头文件就可以了,而且不会引起重复定义的错误。

 

二、静态全局变量

  即使用static修饰的全局变量,它不能使用extern进行引入声明,即extern与static不可以一起使用;而且static全局变量与普通全局变量有很大不同。

  static修饰的全局变量声明与定义是一体的,在头文件中声明了static全局变量,同时也是定义了它。

  多个编译单元都包含static全局变量所在的头文件,不会引起重定义错误,因为每个编译单元都开辟了新的空间存储它。

三、全局常量

  const全局变量使用起来与普通全局变量一样,在.cpp中定义并赋初值,在.h头文件中用extern进行声明,然后再需要使用的地方包含.h即可,在多个编译单元中其内存地址也不同(这一点与static全局变量类似),但是由于是常量,不能修改其值,所以即使内存地址不一样也没影响,值都一样。

 

转载于:https://www.cnblogs.com/dj0325/p/8491748.html

你可能感兴趣的文章
jQuery 显示加载更多
查看>>
代理模式
查看>>
Confluence 6 系统运行信息中的 JVM 内存使用情况
查看>>
Confluence 6 升级以后
查看>>
用JS实现版面拖拽效果
查看>>
二丶CSS
查看>>
《avascript 高级程序设计(第三版)》 ---第二章 在HTML中使用Javascript
查看>>
Hibernate主键生成策略
查看>>
Crushing Machinery - Strong Support of Cement Enterprise
查看>>
AsyncTask
查看>>
Django框架(十九)—— drf:序列化组件(serializer)
查看>>
JS一些概念知识及参考链接
查看>>
关于JS中&&和||用法技巧
查看>>
TCP/IP协议原理与应用笔记24:网际协议(IP)之 IP协议的简介
查看>>
SAP HANA开发中常见问题- 基于SAP HANA平台的多团队产品研发
查看>>
内部元素一一相应的集合的算法优化,从list到hashmap
查看>>
游戏中的心理学(一):认知失调有前提条件
查看>>
SpringMVC-处理AJAX
查看>>
WHAT I READ FOR DEEP-LEARNING
查看>>
【Ruby】Ruby在Windows上的安装
查看>>