【原创】C++变量作用域(三)

星期六那天突然想到关于extern使用的一种情况,如下:

 1 ExpandedBlockStart.gif ContractedBlock.gif /**/ a.h/
 2
 3 extern   int  a;
 4
 5 ExpandedBlockStart.gifContractedBlock.gif /**/ /////a.cpp////
 6
 7 #include  " a.h "
 8
 9 int  a  =   7 ;
10
11 ExpandedBlockStart.gifContractedBlock.gif /**/ ///b.cpp//
12
13 #include  " a.h "
14
15 //  a = 8;
16
17 // a = a+1;              // 如果外部变量在这里作为b.cpp的全局变量赋值时会出错
18
19 int  func()
20
21 ExpandedBlockStart.gifContractedBlock.gif {
22
23  retrun a;
24
25}

26
27 int  _tmain( int  argc, _TCHAR *  argv[])
28
29 ExpandedBlockStart.gifContractedBlock.gif {
30
31  a=a+1;         //而当a作为局部变量赋值时却不会报错,且会影响整个项目中a值
32
33  func();
34
35  cout<<a<<endl;
36
37  while(true)
38
39ExpandedSubBlockStart.gifContractedSubBlock.gif  {
40
41  }

42
43  return 0;
44
45}


至于为什么能作为局部变量而却不能作为全局变量本人确实不解,有待以后的了解。但是如果要以这么一种形式来做变量在多个文件中共享,一定要注意异步读写问题。

文章写得有点粗略,不过没有关系,关键能真正对技术提高有好处。对自己说,加油!


转载于:https://www.cnblogs.com/IamEasy_Man/archive/2009/08/25/1553274.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值