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

C/C++多个源文件访问同一全局变量

时间:2019-08-20 00:38:40      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:而且   nal   编译   多个   image   不能   错误   span   实现   

  正确的实现方法是:在其它文件都引用的头文件中用extern关键字声明一个链接属性为external的全局变量,并在对应的源文件中定义该变量。然后在需要使用该变量的源文件中用extern关键字声明该全局变量,这样就能够在不同的言文件中共享全局变量了。

  例如,有三个源文件file1.cpp、file2.cpp和file3.cpp需要共享一个全局变量a,正确的方法是:在头文件file1.h中声明全局变量a(注:省略此声明也可以通过编译,但是此声明表明了全局变量定义的位置,增加代码可读性):

  技术图片

  在源文件file1.cpp中定义全局变量a(注:也可以在其它源文件中定义,在此定义增加代码可读性):

  技术图片

  分别在使用到变量a的源文件file2.cpp和file3.cpp中对其进行声明:

  技术图片

  技术图片

  需要注意的是:链接属性为external的全局变量可以声明多次,但只能定义一次。而且,不能够将全局变量定义在头文件中,否在会因为头文件被多次引用而造成变量多次定义,进而导致链接失败。例如将全局变量定义在头文件file1.h中:

  技术图片

  将产生如下的链接错误:

  技术图片

  

C/C++多个源文件访问同一全局变量

标签:而且   nal   编译   多个   image   不能   错误   span   实现   

原文地址:https://www.cnblogs.com/shichangxing/p/11380478.html

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