关于VC MFC中的全局变量解决思路

关于VC MFC中的全局变量
一个工程,几个cpp文件,对应几个.h文件

因为有非常多的全局变量.
我把全局变量都定义在同一个如commmon.h文件中

然后在每个cpp文件中用
#include   "common.h "
这样来使用.
那么,就会出现 "变量重复定义 "的错误.

如何解决?

我在common.h中用#ifndef   COMMON_H   #define   COMMON_H   #endif
来做,也不行.

因为有非常多的全局变量,而每个cpp文件中又都用到.难道我要在每一个全局变量前
都用#ifndef   COMMON_H_XX   #define   COMMON_H_XX   #endif
来做??
又或者在每个cpp文件中用extern来做??

如果一个大的工程来说,如何解决这种问题??




------解决方案--------------------
common.h里面写extern引用的变量
然后随便找个.cpp放变量实体
------解决方案--------------------
举个例。比如在
.cpp文件中写
int yourvar;
然后在.h文件中写。
extern int yourvar;
然后其他想使用这个全局变量的.cpp文件只需要include
这个头文件就可以了
------解决方案--------------------
变通的解决办法:
新建一个类,其成员全部为静态: 用static修饰
在StdAfx.h中#include "XXX.h "

在工程的任何地方以XXX:xx引用

这样就没有extern的麻烦了
------解决方案--------------------
楼上C语言没学好啊.~~
新建一个文件comm.cpp,把所有的全局变量定义在这个文件中,在comm.h文件中用extern声明这些变量.
comm.h
extern CString g_strUserName;//变量声明

comm.cpp
CString g_strUserName; //变量定义
在所有文件中就可以随便用了.