Static全局變量與普通的全局變量有什么區別?static函數與普通函數有什么區別?


Static全局變量與普通的全局變量有什么區別?

答:
  全局變量(外部變量)的說明之前再冠以static就構成了靜態的全局變量。全局變量本身就是靜態存儲方式,靜態全局變量當然也是靜態存儲方式。
這兩者在存儲方式上並無不同。這兩者的區別在於非靜態全局變量的作用域是整個源程序,當一個源程序由多個原文件組成時,非靜態的全局變量在各個源文件中都是有效的。而靜態全局變量則限制了其作用域,即只在定義該變量的源文件內有效,在同一源程序的其它源文件中不能使用它。
  由於靜態全局變量的作用域限於一個源文件內,只能為該源文件內的函數公用,因此可以避免在其他源文件中引起錯誤。
  static全局變量與普通的全局變量的區別是static全局變量只初始化一次,防止在其他文件單元被引用。

2.static函數與普通函數有什么區別?
答:
  static函數與普通的函數作用域不同。盡在本文件中。只在當前源文件中使用的函數應該說明為內部函數(static),內部函數應該在當前源文件中說明和定義。對於可在當前源文件以外使用的函數應該在一個頭文件中說明,要使用這些函數的源文件要包含這個頭文件。
static函數與普通函數最主要區別是static函數在內存中只有一份,普通靜態函數在每個被調用中維持一份拷貝程序的局部變量存在於(堆棧)中,全局變量存在於(靜態區)中,動態申請數據存在於(堆)


免責聲明!

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



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