當前位置:編程學習大全網 - 網絡軟體 - Static是什麽意思啊,在C程序裏面

Static是什麽意思啊,在C程序裏面

static可應用於應用於內部變量、外部變量和函數。應用於內部變量時,其作用是用來指定變量的存儲類別為靜態變量。應用於外部變量和函數時,其作用是限制變量或函數的作用範圍僅限於外部變量或函數所在的源文件。

1、在整個程序運行的過程中,無論靜態內部變量所在的函數被調用了多少次,靜態內部變量只運行壹次初始化,即在程序運行時完成的。

2、在函數的兩次調用期間,靜態內部變量所在存儲單元不被釋放,因而當前次函數調用執行時其值會被保存下來,下次調用時該值依然存在。即靜態內部變量的值在從壹次函數調用到下壹次函數調用到下壹次函數調用到下壹次函數調用之間保持不變。

3、 默認情況下,外部變量的作用域是從定義變量的位置到所在源文件的末尾。

壹、函數分為內部函數和外部函數

當壹個源程序由多個源文件組成時,C語言根據函數能否被其它源文件中的函數調用,將函數分為內部函數和外部函數。

1、內部函數(又稱靜態函數)

如果在壹個源文件中定義的函數,只能被本文件中的函數調用,而不能被同壹程序其它文件中的函數調用,這種函數稱為內部函數。

定義壹個內部函數,只需在函數類型前再加壹個“static”關鍵字即可,如下所示:

static 函數類型 函數名(函數參數表){?}

關鍵字“static”,譯成中文就是“靜態的”,所以內部函數又稱靜態函數。但此處“static”的含義不是指存儲方式,而是指對函數的作用域僅局限於本文件。

使用內部函數的好處是:不同的人編寫不同的函數時,不用擔心自己定義的函數,是否會與其它文件中的函數同名,因為同名也沒有關系。

2、外部函數

外部函數的定義:在定義函數時,如果沒有加關鍵字“static”,或冠以關鍵字“extern”,表示此函數是外部函數:

[extern] 函數類型 函數名(函數參數表){?}

調用外部函數時,需要對其進行說明:

[extern] 函數類型 函數名(參數類型表)[,函數名2(參數類型表2)?];

二、C語言是壹門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著跨平臺的特性,以壹個標準規格寫出的C語言程序可在包括壹些類似嵌入式處理器以及超級計算機等作業平臺的許多計算機平臺上進行編譯。

擴展資料:

static的作用

在C語言中,static的字面意思很容易把我們導入歧途,其實它的作用有三條。

1、最重要的壹條:隱藏。

同時編譯多個文件時,所有未加static前綴的全局變量和函數都具有全局可見性。

加了static,就會對其它源文件隱藏。例如在a和msg的定義前加上static,main.c就看不到它們了。利用這壹特性可以在不同的文件中定義同名函數和同名變量,而不必擔心命名沖突。Static可以用作函數和變量的前綴,對於函數來講,static的作用僅限於隱藏,而對於變量,static還有下面兩個作用。

2、static的第二個作用是保持變量內容的持久。存儲在靜態數據區的變量會在程序剛開始運行時就完成初始化,也是唯壹的壹次初始化。***有兩種變量存儲在靜態存儲區:全局變量和static變量,只不過和全局變量比起來,static可以控制變量的可見範圍,說到底static還是用來隱藏的。

3、static的第三個作用是默認初始化為0。其實全局變量也具備這壹屬性,因為全局變量也存儲在靜態數據區。在靜態數據區,內存中所有的字節默認值都是0x00,某些時候這壹特點可以減少程序員的工作量。比如初始化壹個稀疏矩陣,我們可以壹個壹個地把所有元素都置0,然後把不是0的幾個元素賦值。

如果定義成靜態的,就省去了壹開始置0的操作。再比如要把壹個字符數組當字符串來用,但又覺得每次在字符數組末尾加’\0’太麻煩。如果把字符串定義成靜態的,就省去了這個麻煩,因為那裏本來就是’\0’。

最後對static的三條作用做壹句話總結。首先static的最主要功能是隱藏,其次因為static變量存放在靜態存儲區,所以它具備持久性和默認值0。

百度百科-static函數

百度百科-c語言

  • 上一篇:《飛花逐月》txt全集下載
  • 下一篇:寫字樓裝修設計中的會場設計是怎樣的?
  • copyright 2024編程學習大全網