全局变量应在哪里定义?

解决方案 »

  1.   

    for example:
    in stdafx.cpp
    int g_test;in other files:
    extern int g_test;
    g_test=...;
      

  2.   

    刚生成的程序一开始就有一个theApp应用程序全局变量,你可以在它的类里面定义,也可以在你自己定义的类里面加static关键字定义,或着在CPP文件中的开头定义。
      

  3.   

    你可以这样定义一个全局变量:
    1。在你工程中的任何一个.cpp文件中(只能是一个)的全局范围内(就是不在任何类的定义里面),定义变量。
       例如:int g_Value;
    2。在一个被所有的.cpp文件都包含的头文件中(一般都是stdafx.h)中,加入以下声明:
       extern int g_Value;
    就可以了。
    绝对正确,接分了。
      

  4.   

    好像在vc中,classwizard生成的project中,就包含一个全局变量,即theApp yourapp;每个都有的,你把你的全局变量定义在他下面就行了,别的地方就用extern引用就行了,
      

  5.   

    绝对同意houdu(),你不用再问了,给分吧,那个绝对正确,我就是这样用的,这是我认识的最方便的方法。省去extren了。。
      

  6.   

    我补充一下吧,
    1,在你的XXXXApp.cpp里,加入你要的全局变量
    /////////////////////////////////////////////////////////////////////////////
    // The one and only CXXXXXXApp objectCXXXXXXApp theApp;int m_YourVariable ;2........与houdy()同。
      

  7.   

    你也可以这样定义:
    把该变量放在该应用程序类的头文件中的attribute处。然后在程序任何地方都可以用如下方法来访问该变量:
     CMyApp * app  = (CMyApp*)AfxGetApp();
     app->MyGlobalVar = ...
    这种方法具有OOP的特点,封装性好!
      

  8.   

    我觉得要规范些,能让人比较好的阅读,最好不要加到stdafx.h中
    加到如:
    CXXXXXXApp theApp;int m_YourVariable ;比较显眼
      

  9.   

    因为大家都知道theApp是一个全局变量!
      

  10.   

    如果用theApp的话,是不是也需要先在开头extern XXXX theApp这样定义一下呢?