阅读:1202回复:6
关于全局变量的定义!!
在一个工程中定义全局变量,现在有以下两种方法:
1. 将全局变量定义在.c(.cpp)文件中,在.h文件中用extern声明该变量,在需要使用该全局变量的时候只需要include相应的头文件就可以了。 2. 将全局变量定义在.h文件中,需要使用的时候只需要include相应的头文件就可以了。 我认为使用第一种方法比较好,而我的同事则觉得第二种方法好一点。究竟哪一种好呢?? 对于第二种方法现在发现如下问题: 如果在2个以上的.cpp文件中引用了同一个变量,那么在连接的时候就出现\"Symbol redifinition\"的错误。 如果源文件的扩展名都使用.c,则不会出现以上问题。而且对于VC编译器可以保证变量所用的引用都指向相同的地址,但是对于其它的编译器来说,会不会出现不同的引用指向不同的地址的情况呢?? 欢迎各位大虾提供意见。 |
|
|
沙发#
发布于:2002-10-11 10:42
小弟也认为使用第一种方法比较好
|
|
|
板凳#
发布于:2002-10-11 10:43
为什么不:
将全局变量定义在.c(.cpp)文件中,在另外需要使用的c,cpp中用extern申明呢? 以C++推荐语法,不应该在h文件中申明变量,只能是结构定义或函数原型申明或宏定义。 |
|
|
地板#
发布于:2002-10-11 10:43
我一般这样定义:
在一个cpp中定义全局变量, 在需要使用这个变量的cpp文件中声明是extern 这样不需要include :D |
|
|
地下室#
发布于:2002-10-11 10:46
虎财竟然比我快,pfpf
|
|
|
5楼#
发布于:2002-10-11 11:02
第一种方法好!
|
|
|
6楼#
发布于:2002-10-11 12:49
我的做法陪 1 差不多.
Global.H : define all globale variable int G1; Ref.H : with extern. extern int G1; 在 main 中(或某一 .c 中) include global.h 其他都 INCLUDE REF.H |
|