如安在C++Builder中利用全局变量[VC/C++编程]
本文“如安在C++Builder中利用全局变量[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本文具体注释了如安在C++Builder中利用全局变量.
作者:yifei(尹加俊)
信箱:yifei1900@163.com
如安在C++Builder中利用全局变量?
(1).假如我在一个公用的头文件中定义一个变量,在别的单元中可以直接利用它吗?以下:
//--------------------------------Globals.h----------------------------------
#ifndef GlobalsH
#define GlobalsH
//---------------------------------------------------------------------------
#include <Classes.hpp>
//---------------------------------------------------------------------------
AnsiString UserName;
//---------------------------------------------------------------------------
#endif
答案是:大概可以吧.你得到的后果是:只要你引用了这个头文件N次,那么就会得到N+1次编译器告诫,挑选你这个变量反复定义,在你引用这个变量的单元中,确切可以利用这个变量,但是在一个单元中对它赋值,在另一个单元中确得不么,也就是说,它根本就不是全局的,编译器的处理办法是,在每个单元中重新以这个名称声明了一个变量罢了.
(2).假如我在工程文件.cpp中声明一个变量,在别的单元中可以直接利用它吗?以下:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("TMainForm.cpp", MainForm);
//---------------------------------------------------------------------------
AnsiString UserName;
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TMainForm), &MainForm);
Application->Run();
}
catch ... //这里省略了一部份
return 0;
}
//---------------------------------------------------------------------------
答案是:不可以.但是这确切是定义全局变量的精确办法之一.在工程文件.cpp中声明了变量,假如想在别的单元中利用它,必须利用extern关键字,来声明这个变量是外部的,所以,在需求利用这个全局变量的单元中,利用extern AnsiString FileName便可以引用一例中的全局变量了.
以上是“如安在C++Builder中利用全局变量[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |