static 和 普通的全局變量有什么不同。它在類里面又有什么特點


static全局變量  與  普通的全局變量  區別:  

  1、作用域不同:static全局變量 的作用域  為 定義該變量的源文件 ,也就是只能被該文件中的函數公用,從而避免在其他源文件中引起錯誤。稱為文件作用域。

  2、static全局變量在編譯時初始化,也就是在main()函數之前初始化並且僅能初始化一次。

相同點:

  1、靜態儲存方式:被放在程序的靜態數據存儲區(全局可見)中,這樣可以在下一次調用的時候還可以保持原來的賦值。這一點是它們與堆變量、堆變量的區別。而局部變量在棧里分配空間

 

總結:

全局變量改變為靜態變量后是改變了它的作用域,限制了它的使用范圍

 

static函數和普通函數區別:
區別
  1.文件作用域:普通函數的定義和聲明默認情況下是extern的,但靜態函數只是在聲明他的文件當中可見,不能被其他文件所用。好處:其他文件中可以定義相同名字的函數,不會發生沖突。
  2.普通函數在C++類中編譯后帶一個隱藏的this參數,而static函數不帶。


免責聲明!

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



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