【C++語言】static關鍵詞詳解

目錄

 

1 static關鍵詞修飾全局變量

2 static關鍵詞修飾局部變量

3 static關鍵詞修飾函數


1 static關鍵詞修飾全局變量

普通全局變量:全局變量定義在函數體之外,存在於全局數據區中,對整個工程的文件可見,不同文件不能定義同名的全局變量。各個文件之間共享全局變量,只需要用extern聲明即可,如下圖所示:

                                                                      

靜態全局變量:使用static聲明的全局變量稱爲靜態全局變量,也存在於全局數據區,但是對外部文件隱藏,只在本文文件中可見,不同文件可以用static聲明同名的全局變量,如下圖所示:

                                                      

2 static關鍵詞修飾局部變量

普通局部變量:普通局部變量在函數體內聲明,存在於棧區,在函數調用時創建,函數返回時銷燬。如下圖所示:

                                                    

靜態局部變量:靜態局部變量在函數體內聲明,存在於全局區,在編譯期創建初始化,整個程序結束後銷燬。如下圖所示:

                                                   

3 static關鍵詞修飾函數

 普通函數將函數聲明放在頭文件中,其他文件加載該頭文件便可以引用這些函數,不同文件中不能定義相同名稱的函數,否則編譯不通過。

靜態函數與普通函數的作用域不同,僅在本文件中可以使用,對外部文件隱藏,不同的文件可以使用static定義相同名稱的函數。除此之外,static函數在內存中只有一份,普通函數在每個被調用中維持一份拷貝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章