码迷,mamicode.com
首页 > 编程语言 > 详细

c++多个文件中如何共用一个全局变量

时间:2017-05-25 22:01:18      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:cpp   错误   word   mil   mod   nbsp   不能   family   变量声明   

例子:

头文件:state.h   源文件:state.cpp       

 其它源文件:t1.cpp  t2.cpp  t3.cpp, 这些源文件都包含头文件state.h。

需要定义一个全局变量供这些源文件中使用:方法如下

1、在 state.h声明全局变量: extern inta;

2、在state.cpp中定义该全局变量:int a =10;

这样其它源文件就可以使用该变量啦

 

 

这里需要的是“声明”,不是“定义”!根据C++标准的规定,一个变量声明必须同时满足两个条件,否则就是定义:  
 (1)声明必须使用extern关键字;(2)不能给变量赋初值    
  extern  int  a;  //声明 


 int  a;   //定义

 int  a  =  0; //定义

 extern  int  a  =0;   //定义

 

 

     头文件中应使用extern关键字声明全局变量(不定义),如果这个变量有多个文件用到,可以新建一个cpp,在其中定义,把这个cpp加入工程即可。头文件请不要定义任何变量,那是非常业余的行为……

    一般在头文件中申明,用extern,在cpp中定义。 如果在头文件中定义,如果这个头文件被多个cpp引用,会造成重复定义的链接错误。

    头文件只能申明全局变量(extern),不可定义(不推荐使用)    .cpp里,在最外层定义即可(int gi),直接引用

如果在.cpp里使用static定义,则该变量只在当前cpp文件中有效,在别的文件中无效
在.h里使用static定义,不会进行编译(.h文件不编译),只会在其每个include的cpp文件中包含编译,相当于在.cpp里使用static定义。

c++多个文件中如何共用一个全局变量

标签:cpp   错误   word   mil   mod   nbsp   不能   family   变量声明   

原文地址:http://www.cnblogs.com/invisible2/p/6905892.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!