1.變數及函式宣告格式
在c語言中,對於乙個變數的宣告/定義格式如下:
儲存型別 型別修飾符 資料型別 變數名
在c語言中,對於乙個函式的宣告格式如下:
儲存型別 返回資料型別 函式名(引數列表)
2.儲存型別
1》auto:只能用來標識變數的儲存型別,意義為自動型別,標識該區域性變數儲存在正在執行程序棧區域,一般情況,對於區域性變數,auto為預設的儲存型別,不需要顯示指定。
2》extern:全域性變數的作用域是整個專案中的所有檔案,但是,要使用在其他檔案中定義的全域性變數,需要包含標頭檔案或者extern關鍵字,否則只能在定義它的檔案中被使用。如果該全域性變數在標頭檔案中定義,則在需要使用該變數的檔案中包含相應的標頭檔案即可,但如果多個檔案都引用此標頭檔案,且這些檔案將一起編譯進乙個專案中,如果該全域性變數被初始化了,則有可能造成重複定義(在gcc環境下,在乙個標頭檔案中定義某全域性變數但不初始化,其被多個檔案包含的情況是允許的)。
3》register:register關鍵字只能用於區域性變數。定義儲存型別為register的變數只能是整形和字元型,此關鍵字主要用於表示長期被使用的變數。
4》static:意為靜態的,既可以表示變數,也可以標識函式。被定義為靜態型別的變數(無論全域性的還是區域性的)儲存在資料區,其生命週期為整個程式。如果是靜態區域性變數,其作用域為自身的乙個對{}內,如果是靜態全域性變數,其作用域為當前檔案;靜態變數如果沒有初始化,將自動初始化為0,靜態變數只會被初始化一次,使用時為上次的返回值;被定義為靜態型別的函式的作用域只能是當前檔案,因此不能再專案的其他檔案中被呼叫。將不需要再其他檔案中被呼叫的函式宣告為static型別很有必要,這將在一定程度上避免函式名稱的衝突。
5》常量資料:字串常量儲存在**段,其生存期為整個程式執行時間。但作用域為當前檔案。
3.總結
關於不同儲存型別的變數和函式的作用域和生存域的總結如下圖:
C變數及函式儲存型別
變數及函式宣告格式 在c語言中,對於乙個變數的宣告 定義格式如下 儲存型別 型別修飾 資料型別 變數名 其中 auto儲存型別 auto 只能用來標識變數的儲存型別,意義為自動型別,標識該區域性變數儲存在正在執行的程序棧區域,一般情況,對於區域性變數,auto 為預設的儲存型別,不需要顯示指定。區域...
c 變數儲存型別
extern 儲存型別 只宣告而不定義變數,變數的宣告只是告訴編輯器變數的名稱和資料型別 變數的定義是給變數分配儲存區域 優點就是可以在多個檔案裡面共享乙個全域性變數,static 儲存型別 static指的是靜態變數 又叫永續性變數 靜態變數分為兩種,第一種是區域性靜態變數在函式內定義的變數,該變...
C變數儲存型別
c語言程式中可以選擇變數的不同儲存形式,儲存型別分別為靜態儲存和動態儲存。我們可以通過儲存類修飾符來告訴編譯器要處理什麼樣的型別變數,具體有以下4種 auto 自動 static 靜態 register 暫存器 extern 外部 auto關鍵字是宣告乙個區域性變數為自動的,這就意味每次執行到定義該...