C/C++多個源文件訪問同一全局變量


  正確的實現方法是:在其它文件都引用的頭文件中用extern關鍵字聲明一個鏈接屬性為external的全局變量,並在對應的源文件中定義該變量。然后在需要使用該變量的源文件中用extern關鍵字聲明該全局變量,這樣就能夠在不同的言文件中共享全局變量了。

  例如,有三個源文件file1.cpp、file2.cpp和file3.cpp需要共享一個全局變量a,正確的方法是:在頭文件file1.h中聲明全局變量a(注:省略此聲明也可以通過編譯,但是此聲明表明了全局變量定義的位置,增加代碼可讀性):

  

  在源文件file1.cpp中定義全局變量a(注:也可以在其它源文件中定義,在此定義增加代碼可讀性):

  

  分別在使用到變量a的源文件file2.cpp和file3.cpp中對其進行聲明:

  

  

  需要注意的是:鏈接屬性為external的全局變量可以聲明多次,但只能定義一次。而且,不能夠將全局變量定義在頭文件中,否在會因為頭文件被多次引用而造成變量多次定義,進而導致鏈接失敗。例如將全局變量定義在頭文件file1.h中:

  

  將產生如下的鏈接錯誤:

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM