在C文件里面声明了全局变量,要被多个C和CPP文件修改,可是在CPP文件中如果将.h文件包含了,就会引起 LINK2005 变量已经定义的错误。
  那么应该如何实现?

解决方案 »

  1.   

    在每个cpp文件中加
    extern int a;
    不知道能否解决
      

  2.   

    在.h中声明 extern int r;在其它要用的.cpp文件中用这个 extern r;
    就OK了。
      

  3.   

    由于全局变量是要被要被多个C和CPP文件修改, 而且是在C文件中创建的线程中赋给初值并监视全局变量的变化, 在CPP文件中修改全局变量, 用以上的方法好像都不能解决问题
      

  4.   

    变量声明楼上们已讲了
    多线程可用临界量来同步建议:不要使用全局变量(这都是那些教课书惹的祸)
    实在没办法要用全局对象的话也应采用全局函数调用,即在你的CPP中声明一个访问变量的函数,将全局变量声明为静态变量