extern全局变量_5.3 C++extern声明的外部变量

点击上方“C语言入门到精通”,选择置顶

第一时间关注程序猿身边的故事

4dcf9918198d310a59245c26f771f773.png

作者

闫小林

白天搬砖,晚上做梦。我有故事,你有酒么?

C++外部变量

上一节有读者咨询extern是什么,这节主要用来解释一下extern在C++中的用法,外部变量在函数的外部定义的,它的作用域为从变量的定义处开始,到本程序文件的末尾。

在此作用域内,全局变量可以为本文件中各个函数所引用。编译时将全局变量分配在静态存储区,有时需要用extern来声明全局变量,以扩展全局变量的作用域。

C++文件内声明全局变量  如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件终了。 如果在定义点之前的函数想引用该全局变量,则应该在引用之前用关键字extern,对该变量作外部变量声明,表示该变量是一个将在下面定义的全局变量。 有了声明,就可以合乎规则地引用该全局变量,这种声明称为提前引用声明。 C++多文件程序声明外部变量 如果一个程序包含两个文件,在两个文件中都要用到同一个外部变量,不能分别在两个文件中各自定义一个外部变量。 正确的做法是:在任一文件中定义外部变量,而在另一文件中用extern对该变量作外部变量声明。 用extern扩展全局变量的作用域,虽然能为C++编码带来方便,但应十分慎重,因为在执行一个文件中的函数时,可能会改变了该全局变量的值,从而会影响到另一文件中的函数执行结果。 经典案例:C++实现用extern对外部变量作引用声明。 源码分析:
#include//头文件 using namespace std;//命名空间 int Max(int num1,int num2);//函数声明 int num1=10,num2=5;//定义全局变量 int main() //主函数 {extern int num1,num2;//对全局变量num1,num2做引用声明cout<<"较大的值是:"<endl; 
}int Max(int num1,int num2)//自定义求两个数中的较大值 {int temp;//定义一个中间变量 if(num1>num2)//判断条件
  {
    temp=num1;
  }else
  {
    temp=num2;
  }return temp;//函数返回值为temp
}
编译后的结果:
较大的值是:10
--------------------------------
Process exited after 0.07294 seconds with return value 0
请按任意键继续. . .
451846e3c3ef431a083d0888eceaaa13.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值