VC中怎麼使用全域變數

來源:互聯網
上載者:User

全域變數一般這樣定義: 1。在一類的.cpp中定義   int   myInt; 然後再在要用到的地方的.cpp裡extern   int   myInt;這樣就可以用了。 2。在stdafx.cpp中加入: int   myInt; 然後在stdafx.h中加入: extern   int   myInt 這樣定義以後無論在什麼檔案中都是可見的. 3。比較規範的是,先定義一個Glbs.h,把所有的全域變數原始定義放進去。然後定義一個Externs.h,把你先前定義在Glbs.h中的變數都加上extern。       注意:如果你在Glbs.h中設定了初值,那麼在Externs.h中就不要加值了。然後調用時,第一次調用的#include   "Glbs.h ",以後調用的#include   "Externs.h " ====================================================================== VC中使用全域變數的2種辦法及防錯措施     1.   對於全域變數存在和函數一樣的問題,為了在其他CPP檔案中能夠訪問這些變數,必須在主檔案的H檔案中加上extern聲明,格式如下: extern   varibletype   var;   (聲明) 在主檔案的CPP檔案中定義 varibletype   var;   (定義) 例子: AppWizard建立一個Test工程 那麼在Test.h中聲明extern   CString   cs; 在Test.cpp定義CString   cs; 如果要定義整個工程的全域變數,在任何一個CPP檔案中進行定義,然後在需要引用這個變數的檔案中進行聲明。如全域變數很多可以選擇使用定義全域變數的.h檔案, 在需要的地方直接include標頭檔即可,不需要寫那麼多extern了。 2.應用程式類的主標頭檔處定義變數varibletype   var,然後,在程式的任何地方,都可以用下面的方法來訪問該變數:   CClassApp   *app=(CClassApp*)AfxGetApp();   app-> var=  類似的,以上方法也可以定義全域對象 例子: AppWizard建立一個Test工程 那麼在Test.h中聲明CString   cs; 使用的時候CTestApp   *app   =   (CTestApp*)AfxGetApp(); app-> cs= "Global "   防錯措施: 若定義的函數和全域變數在多個檔案包含且造成嵌套或多次調用的話,這樣將導致這個標頭檔每被包含一次,函數或變數就被重新定義一次,在連結編譯時間會導致重定義錯誤。 為此需要使用一種被稱為Guardmacro的技術來保證不出錯。在一個標頭檔開頭加上 #ifndef   _MACRO_1_ #define   _MACRO_1_ 在檔案末尾增加 #endif ============================================================= 做兩個標頭檔:global.h,   globalExt.h 在global.h中: #ifndef   _GLOBAL_H_ #define   _GLOBAL_H_ //變數定義 int   nTest; float   fTest; #endif

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.