全局变量和全局函数是相对局部变量和局部函数而言的,不在{}或者for, if 等范围内的都是全局变量或者全局函数,最简单的是在同一个文件中去声明。

例如在mian.cpp中

#include <iostream> int gResult;int gAdd(int a, int b) {return a + b;}int main(int argc, const char * argv[]) {gResult = aAdd(2, 3);}

这样的话main函数上面的都是都是全局变量和全局函数;在整个文件中都可以调用的到,也就是说全局变量是对其所在的整个文件而言的。

但是问题来了,我们需要使用其他文件中全局变量怎么办,或者说我们需要整个项目中只有唯一的一个全局的变量。

声明的时候是一样的,只是在调用的时候需要用extern关键字在用的文件中重新声明一下就可以了。

例如:

我们在base.cpp中声明一个全局的变量和全局函数

#include <iostream>#include "base.h"int gResult;int gAdd(int a, int b){return a + b;}void print(){std::cout<<gRedult<<std::endl;}

现在我们需要在mian.cpp中调用全局变量和全局函数;

int mian(int argc, const char * argv[]) {//重新声明base.cpp中的全局变量和全局函数;extern int gResult;extern int gAdd(int a, int b);extern void print();gResult =  gAdd(2, 3);//可以看到两次打印的结果都是5,因为他们操作的是同一个全局变量;std::cout<<gResult<<std::endl;print();  }

C++中如何访问全局变量和全局函数相关推荐

  1. MFC中定义全局变量和全局函数的方法

    使用Visual C++6.0 中的MFC 基本应用时, 由于 MFC 制作的工程由很多文件构成, 它不能象一般C++程序那样随意在类外定义全局变量, 那样有时会在运行程序时出现问. 在软件开发过程中 ...

  2. 在vue项目中定义全局变量和全局函数

    如题,在项目中,经常有些函数和变量是需要复用,比如说网站服务器地址,从后台拿到的:用户的登录token,用户的地址信息等,这时候就需要设置一波全局变量和全局函数 定义全局变量 原理: 设置一个专用的的 ...

  3. MFC下如何定义全局变量和全局函数

    MFC下如何定义全局变量和全局函数 用MFC制作的工程由很多文件构成,它不能像一般C++程序那样随意在类外定义全局变量,在这里要想定义能被工程内多个文件共享的全局变量和函数必须用一些特殊方法才行.实际 ...

  4. C++ 继承过程中使用访问说明符和虚函数

    1.首先,继承过程中使用访问说明符主要是为了控制 继承下来的成员的访问性,比如对类A: class A { public:int a; protected:int b; private:int c; ...

  5. C++_类和对象_对象特性_友元_全局函数做友元_在类中声明友元权限的全局函数来访问_类中的private权限的变量---C++语言工作笔记052

    然后我们再来看友元,友元,其实就类似于, 比如一个建筑类,这里面有,客厅有卧室, 那么客厅是public的,大家都能访问,但是卧室是private的,外人不能访问 但是,如果是我的朋友,.我想让他访问 ...

  6. js定义全局变量 vue页面_在vue项目中 实现定义全局变量 全局函数操作

    写在前面: 如题,在项目中,经常有些函数和变量是需要复用,比如说网站服务器地址,从后台拿到的:用户的登录token,用户的地址信息等,这时候就需要设置一波全局变量和全局函数,这两个设置不太难,而且有一 ...

  7. python中的作用域以及内置函数globals()-全局变量、locals()-局部变量

    在python中,函数会创建一个自己的作用域,也称为为命名空间.这意味着在函数内部访问某个变量时,函数会优先在自己的命名空间中寻找. 通过内置函数globals()返回的是python解释器能知道的变 ...

  8. mfc中如何使用全局变量进行数据共享

    文章转载自http://www.programfan.com/article/2894.html 用MFC制作的工程由很多文件构成,它不能象一般C++程序那样随意在类外定义全局变量,在这里要想定义能被 ...

  9. QML < 5 > QML 访问C++ 类 (函数Q_INVOKABLE、枚举Q_ENUMS 、成员变量Q_PROPERTY、自定义结构体QVariantMap、List数据QVariantL

    QML < 5 > QML 访问C++ 类 (函数Q_INVOKABLE.枚举Q_ENUMS .成员变量Q_PROPERTY.自定义结构体(QVariantMap ).List数据QVar ...

最新文章

  1. 02_计算机科学和软件工程的区别
  2. 【Linux】Linux computer文件夹下各种文件的作用
  3. Deep Learning(深度学习)学习笔记整理系列之(五)
  4. iOS开发:动态添加按钮
  5. MySQL 基本数据类型
  6. 服务器事件刷新消息,Windows Server 2003 中的 DNS 事件消息 1616 到 6702
  7. vs code 添加jquery的智能提示
  8. mysqlclient==1.3.7对应mysql版本_「MySQL」CentOs 7 下安装MySQL
  9. 表格下拉_【职场充电】要说制作一个漂亮的表格,高手都爱WPS
  10. 15款值得开发者一试的最新的前端框架
  11. 苹果:两个 M1 Max 拼一块儿,“史上最强 PC 芯片”M1 Ultra 就出来了!
  12. 01.mac下安装配置maven
  13. watershed用法详解
  14. procedures
  15. contiki(官网简介翻译)介绍
  16. 张轩睿和Selina要复合?任家萱的粉丝们会同意吗
  17. windows自带hyperv安装虚拟机ubuntu与分辨率修改
  18. 使用Beego撸了一个社区
  19. ESP8266开发之旅 阿里云物联网平台篇④ LED智能灯控制系统(MQTTS客户端直连)
  20. Java 方式实现词云显示

热门文章

  1. zabbix 监控 elasticsearch
  2. 【2016-05-19】一次tomcat频繁挂掉的问题定位
  3. Java的Web项目使用DWR简单配置说明
  4. 梁胜:做云计算,如何才能超越AWS?
  5. 简单三步-实现dede站内搜索功能
  6. jsp 页面中El表达式失效处理
  7. Solaris 10 x86 上折腾Mono
  8. Java模拟面试总结
  9. 混合编码种群来进化的最大化目标的单目标优化问题
  10. 分享基于EF6、Unitwork、Autofac的Repository模式设计