当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++ Builder教程

在C++Builder中使用全局变量

     新手常见的在C++Builder中使用全局变量的问题 ,很简单,感觉不错就发了上来。

  如何在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)
  //---------------------------------------------------------------------------
  #pragma package(smart_init)
  //---------------------------------------------------------------------------
  AnsiString UserName = \"YinJiajun\";
  //---------------------------------------------------------------------------


  //-----------------------------Globals.h-------------------------------------
  #ifndef GlobalsH
  #define GlobalsH
  //---------------------------------------------------------------------------
  #include <Classes.hpp>
  //---------------------------------------------------------------------------
  extern PACKAGE AnsiString UserName;
  //---------------------------------------------------------------------------
  #endif


  后记:大虾们都告诉我们,不要使用太多的全局变量,不要使用goto......于是,当你写程序时,总是有这样的声明在我们脑中回响:“不要使用太多的全局变量,不要使用goto......”。为什么不要使用这些东西?因为难以驾驭。如果你已剑气合一,是否还有这样的顾虑?

相关内容
赞助商链接