C/c++中 數組全局變量的定義聲明 與 引用聲明


數組聲明一次,所有的  定義聲明  有切僅有一次!

別人遇到的問題如下:

在聲明定義時,定義數組如下:

int G_glob[100];

 

在其他文件引用時聲明如下:

int *G_glob;

這樣的操作,在vc中,是可以編譯通過的,這種情況大家都比較模糊並且需要注意,數組與指針類似,但並不等於說對數組的聲明起變量就是指針。上面所說的的程序在運行時發現了問題,在引用聲明的那個文件中,使用這個指針時總是提示內存訪問錯誤,原來我們的連接程序並不把指針與數組等同,連接時,也不把他們當做同一個定義,而是認為是不相關的兩個定義,當然會出現錯誤。正確的使用方法是在引用聲明中聲明如下:

int G_glob[100];

 

最好是加上 引用申明標識:

extern int G_glob[100];

更好的是:

 另外需要說明的是,在引用聲明中由於不需要涉及到內存分配,可以簡化如下,這樣在需要對全局變量的長度進行修改時,不用把所有的引用聲明也全部修改了。

extern int G_glob[];

 

本來看到是說有引用鏈接的,結果最后沒有我這里也只好結束了。

來自:janders 只知其名不知居。

 


免責聲明!

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



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