如何定义C++builder的全局变量

mxp 2000-06-23 10:30:00
不要告诉我在.h的Public中定义!!!
我要的是不打开任何.h就能使用的真正全局变量,属于工程,不属于类,请详细说一下有几种可定义的位置!
...全文
549 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
april_d 2001-10-18
  • 打赏
  • 举报
回复
gz
mxp 2000-06-23
  • 打赏
  • 举报
回复
不是我要用,而是我经常看见一些网友说全局变量不安全,又什么占用内存等等,又是工程加载就使用啦,等等,所以要用类的共享变量,我怎么从没在任何资料上看见有属于工程不用打开头文件的变量?!!因此我想知道所说的不安全的全局变量是什么?
duhorse 2000-06-23
  • 打赏
  • 举报
回复
可以试试在project->view source中加入,行吗?
halfdream 2000-06-23
  • 打赏
  • 举报
回复
在一个工程中专门用一个UNIT存放全局变量吧。
呵呵,这样还是要INCLUDE 头文件的。
变量定义在其中的CPP文件中。再在头文件中声明一下。
如:
//----------------CPP file------------
int a;
float b;
AnsiString c; //这几个是定义
//----------------------------------------
//----------------H file------------------
extern int a;
extern float b;
extern AnsiString c; //这几个是对应的声明, 要分清。
//---------------------------------

另外在头文件有个地方稍稍注意一下:
#ifndef Unit2H
#define Unit2H
//(在这个地方放你的声明代码, 这样可以避免因多重#include 造成的重复声明)

#endif

radish 2000-06-23
  • 打赏
  • 举报
回复
你为什么要用全局变量?
halfdream 2000-06-23
  • 打赏
  • 举报
回复
你说‘如果是指针分配内存后,没有释放,也不随着应用程序的关闭而自动释放’
我差不多也是这样认为。不过我还是有些怀疑:
WINDOWS 为每个进程一个进程堆,即所谓的全局堆, 用new 这样动态分配的内存都
是从这个全局堆中分配, 在进程结束的时候, 这个进程堆应该是完全释放吧,这样就
算里面的指针没有完全释放内存,好象也没有关系吧?
另外, VCL 对象有一个要求,是必须都用new动态分配,
这一点极象JAVA的思想。JAVA 可以不用手工释放动态分配的内存。
我想VCL 也提供了一种机制自动释放分配的内存。
halfdream 2000-06-23
  • 打赏
  • 举报
回复
在同一个文件中定义的全局变量可以直接用。
在另一个文件中定义的,必须先声明再用。如:extern int a; a=8;
这是因为编译器是将各文件先独立编译成OBJ文件后再链接的。如果不声明,
编译器是绝不知道有这个变量定义在其它文件。
mxp 2000-06-23
  • 打赏
  • 举报
回复
另外,我想所说的占内存可能是不随着任何窗体的释放而消失,如果是指针分配内存后,没有释放,也不随着应用程序的关闭而自动释放。
mxp 2000-06-23
  • 打赏
  • 举报
回复
对,我就是想知道在任何窗体中不需要声明就可以使用的变量,在工程(不知道何处)中定义,各个窗体用不着对它作处理,拿来就用,比如在 有个全局变量 a,在窗体Form1中a=8;(就是直接写a=8;别的什么都不用做,包括include),只要不改变a在窗体 Form2中 a还是等于 8 。有没有?

halfdream 2000-06-23
  • 打赏
  • 举报
回复
需要的时候还是用一下吧。 变量不占内存占什么? :)
所谓的不安全,全局变量主要问题就是因为在哪个函数中都可以访问它。
不小心会造成一些问题。
所谓#include 其实就是相当于把声明的那段代码,粘贴过来。同手工声明一点区别都没有。
呵呵。什么叫属于工程的变量?
是说的放在工程的主cpp文件中的变量吗?
其实,很多只是常识就可以推断,别想复杂了。
你可以写程序试试, 定义各种变量, 包括用NEW 来分配空间。
然后显示它们的地址值,看看内存分配的问题,让事实来说话。
mxp 2000-06-23
  • 打赏
  • 举报
回复
>可以试试在project->view source中加入,行吗?
早就试过了,不好用!

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧