全局变量
我申明了个全局变量,但在其他文件却说我没定义,奇怪
难道我错了??
请问全局变量怎么申明,怎么使用?
问题点数:20、回复次数:14Top
1 楼wangjianddy(~~~~>_<~~~~)回复于 2002-04-28 10:32:09 得分 2
extern int i;///在其他文件头部这些写就可以了
int i为你已定义的变量
Top
2 楼macrogu()回复于 2002-04-28 10:32:20 得分 10
在cpp文件的类外面
如
int _gCount;//全局变量
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
在其他文件中引用一下 如:
extern int _gCount;
Top
3 楼doghead(长青)回复于 2002-04-28 10:38:59 得分 2
在项目的某实现文件中定义一个全局变量,如:int pubvar;
在别处用到此变量只需声明它,如 extern int pubvar;
(不在任何类结构函数中在)
Top
4 楼budan(不但)回复于 2002-04-28 10:41:12 得分 0
upTop
5 楼nickysoft(泥鳅)回复于 2002-04-28 10:41:13 得分 0
还是不行,说
error LNK2005: "class CSocket * m_pSocket" (?m_pSocket@@3PAVCSocket@@A) already defined in NetSpark.obj
怎么回事Top
6 楼feng_sky(日三而省.)回复于 2002-04-28 10:41:49 得分 2
全局变量在其它模块中要用,必须用使用的模块中用extern声明为外部定义。Top
7 楼budan(不但)回复于 2002-04-28 10:45:23 得分 0
有两个地方有CSocket* m_pSocket的定义了。
注意:在*.h中使用extern CSocket* m_pSocket;
在且只在一个*.c使用CSocket* m_pSocket;Top
8 楼kinghawk(惊鸿)回复于 2002-04-28 10:46:59 得分 2
1、MFC
在CMyApp中定义变量,其中的My为你派生类的名称
之后在任意地方用以下方式调用:
CMyApp *app = (CMyApp *) AfxGetApp();
再用app->的方式调用即可。
2、其它
上面的方法即可Top
9 楼feng_sky(日三而省.)回复于 2002-04-28 10:47:00 得分 2
是在多个文件中定义了。Top
10 楼wangjianddy(~~~~>_<~~~~)回复于 2002-04-28 10:48:19 得分 0
编译-〉清洁
再编译一下试试。
Top
11 楼steedhorse(晨星)回复于 2002-04-28 10:49:04 得分 0
在其它文件中使用extern再声明一遍,C/C++语言编译是以文件为单位的,你不声明,它又不到别的文件中去找,那它就只好告诉你没声明。Top
12 楼nickysoft(泥鳅)回复于 2002-04-28 11:48:34 得分 0
你们说的方法我都试过了,可惜很遗憾,没用
怎么搞的,555555555555555Top
13 楼steedhorse(晨星)回复于 2002-04-28 12:09:24 得分 0
不可能呀,编译通过了吗?Top
14 楼steedhorse(晨星)回复于 2002-04-28 12:10:27 得分 0
是不是两个文件中变量名不小心写错了一个,或者类型不匹配?Top




