在一个project中有许多文件,一般情况下在哪个文件里定义全局变量和函数?
例如在a.cpp中定义CString temp
那么在b.cpp中能使用吗?
它们在其他文件中是否可见?
例如在a.cpp中定义CString temp
那么在b.cpp中能使用吗?
它们在其他文件中是否可见?
解决方案 »
- 想搞个传文件,传完以后文件扩大了100倍
- VC关于获取进程路径乱码问题
- VC问题2,%3s代表什么,感谢
- VC++中 怎么样设置光标?
- 如何提高文件传输速度?
- CComObject 能否象智能指针一样绑定接口?
- _bstr问题.快...................................
- 一个简单的多线程程式,帮我看看!!怎么不正常运行??
- 各位前辈,求帮我分析一下我学习编程中的问题。谢谢!
- 关于listControl问题
- "select describe from SysTableInfo where SysTable=FALSE"执行出错,为什么?在线
- 又一个关于单选按钮的怪毛病!!!是M$的BUG???
在一个cpp文件中申明CString temp
在头文件中申明extern temp 那么在包含这个头文件的cpp中就能看到这个变量!请问在头文件中能不能申明全局变量?是不是一定要在cpp文件中。
CString temp;在a.cpp中要用,则extern一下:
extern CString temp;
就可以用了。
也可以在一个头文件中extern,然后在mainframe.cpp和a.cpp中都包含这个头文件,就可以了。
不一定要在.cpp中声明和extern,
可以这样在头文件abc.h中定义:
#ifdef _MAIN_FRAME_CPP_
CString temp;
#else
extern CString temp;
#endif
然后在mainframe.cpp和a.cpp中都包含头文件abc.h,也是一样的效果。当然了,mainframe.cpp中当然要定义_MAIN_FRAME_CPP_这个宏:
#ifndef _MAIN_FRAME_CPP_
#define _MAIN_FRAME_CPP_
...
#endif
h或其他cpp中写 extern CString temp叫声明, declaration
编译器只为定义开空间。一个变量只能定义一次,但是可以声明多次。
看着办吧。