社区
C++ Builder
帖子详情
如何定义C++builder的全局变量
mxp
2000-06-23 10:30:00
不要告诉我在.h的Public中定义!!!
我要的是不打开任何.h就能使用的真正全局变量,属于工程,不属于类,请详细说一下有几种可定义的位置!
...全文
593
11
打赏
收藏
如何定义C++builder的全局变量
不要告诉我在.h的Public中定义!!! 我要的是不打开任何.h就能使用的真正全局变量,属于工程,不属于类,请详细说一下有几种可定义的位置!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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中加入,行吗?
早就试过了,不好用!
C++builder
实现计算器
可以创建一个
全局变量
存储当前的计算结果,并在每次操作前将结果与新的输入相加、减、乘或除。此外,还需要考虑错误处理,比如当用户输入非法字符或除数为零时,应显示错误提示。 为了使计算器更具用户友好性,可以...
c++builder
回调函数例子
在C++ Builder中,我们通常通过声明函数指针类型来
定义
回调函数,并将其作为参数传递给DLL中的函数。这样做可以实现代码的解耦,因为DLL不必知道主程序的具体实现,只需知道如何调用提供的回调函数。 以下是一个...
C++builder
创建bpl库,并调用
共享变量也类似,可以通过声明
全局变量
或静态成员来实现。确保在编译Package时,这些类和变量会被导出到可被外部程序访问的头文件中。 **3. 添加依赖项** 如果你的BPL库依赖于其他的VCL(Visual Component Library...
C++ Builder 6 程序设计教程_C++_
2. **C++基础**:涵盖C++语言的基本语法和特性,包括变量、运算符、控制结构等。 3. **VCL组件使用**:详细解释如何使用VCL库中的组件创建用户界面。 4. **事件驱动编程**:讲解如何处理用户输入和其他事件,实现...
C++builder
实现动态添加按钮以及随意拖动实现
5. **辅助变量管理**: 使用
全局变量
`X1, Y1, X2, Y2`, `iX, iY`, `KS`, `Pnzz`和`Form1`来管理程序状态。 #### 四、总结 通过上述代码及解析,我们可以清晰地了解到在
C++Builder
中实现动态添加按钮并支持鼠标拖动...
C++ Builder
13,873
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章