我在一个h文件中定义了几个静态变量,然后在两个c文件(都include了那个h文件)中对静态变量进行读写操作,一个文件中读写正常,另外一个文件中却一直读到0,不知道为什么,请高手指点啊!!谢谢。

解决方案 »

  1.   

    把变量定义在.c中例如int i;,在其他的地方的.c中前面加个extern 例如extern int i;
      

  2.   

    静态变量是全局的啊,在一个文件中定义在所有的文件中都是可以用的啊,只要include了那哥定义的文件的就可以。我在两个文件中对它进行访问,编译通过了,在一个文件中的工作正常,另外一个却始终读到了零,开始以为是重复定义了,后来加上了编译选项还是这样子。to...... howtotell(从何谈起) :
    一定要定义在c文件里面吗?为什么呢?
      

  3.   

    [静态变量是全局的啊,在一个文件中定义在所有的文件中都是可以用的啊]
    这句话不对,你所说的静态变量应该是静态全局变量吧,他和全局变量不同,只在当前CPP中有效.而全局变量在所有的文件中都可以用.
      

  4.   

    to lujunliang(小昱) ;请教静态变量是这样定义的吧 :static  变量名;
    静态全局变量应该怎么样定义呢?
      

  5.   

    hundan4383(紫金飞鸿),include 的意思只是简单的把.h的内容很机械的加在cpp前面。所以你的2个cpp文件中的变量实际上是2个毫不相干的变量。1个值变了,另一个没量有什么奇怪的???
      

  6.   

    另外一个文件中声明的时候在前面加extern
      

  7.   

    xuzzzhen123(血海飘香)讲的话让我茅塞顿开,呵呵。