就是我在VC下写了一个程序,4个*.C(1.C, 2.C, 3.C, 4.C)的文件,3个*.H文件,其中一个*.H 里定义了一个公共变量 
并且4个*.C的文件都用到了...... 我编译的时候是好的.连接的时候报了4个错,都说该变量已经1.OBJ定义过了.然后呢我就再点了一次连接,就好了.程序也照常运行了.也就是说连续点两次link就能通过了. 但是昨天我无意中点了一下rebuild all以后连续点两次link也不行了... 
怎么办??? 
附:我用的是多线程!我把问题再具体描述一次....请求各位的解决方案!

解决方案 »

  1.   

    一个文件(假设1.h)定义如下:int n;
    其他文件定义:extern int n;
    只有一个文件包含1.h
      

  2.   

    。H文件第一行:
    #ifndef XXX_H_  define  XXX_H_
      

  3.   

    各位大哥,还是不行呀......
    我按你们说的做,就报语法的错误了!!!!
    我把变量定义在了1.c中,其它*.c
    使用extern 来声明它,但是老报错,说;号以前有语法错误!
      

  4.   

    你这样:
    在1.h里定义extern int i;
    在1.c里int i=0;
    在其他c文件里包含1.h