在头文件里定义变量,若有多个源程序引用引引头文件,会造成此变量多次定义。C语言标识符默认情况下是本源程序私有,即使在头文件里定义变量,一般不会造成问题,除非声明是public。而C++不同,标识符默认是全局的,会在连接时报告错误,除非声明变量是static。比较合理的办法:在头文件里统一声明extern,如下所示:
/*头文件*/ extern int var_1; /*c/c++源程序*/ #ifndef _cplusplus #define PUBLIC_VAR public; #else #define PUBLIC_VAR #endif PUBLIC_VAR int var_1;