c語言 範圍、儲存期、連結屬性匯總

來源:互聯網
上載者:User

標籤:備份   size   儲存類別   內嵌函式   標識符   開始   串連   read   全域   

1、範圍

  塊範圍:用{}闊起來的,從聲明開始到“}” 結束

       函數範圍:goto(標識符) 的範圍為整個函數。

      函數原型範圍:函式宣告開始,函式宣告結束而結束

      檔案範圍:整個檔案或者程式

2、連結

  無連結:即只在其範圍內可見

      內連結:即在從聲明到檔案結束都是可見的

      外連結 :多個檔案或者整個程式都可見

3、儲存期

      靜態儲存期:在整個程式都是佔有記憶體的

      線程儲存期:thread_local,其聲明後會給每個線程分配一個單獨的私人備份

     自動儲存期:局部變數通常都自動為auto 儲存期

     動態儲存裝置期:就是用new 或者malloc分配的記憶體,如果不主動釋放,在整個程式都佔有記憶體

4、總結

     儲存類別                 儲存期      範圍            連結屬性                      表示

     自動                          自動        塊                      無連結                     塊內聲明變數

     寄存器                      自動         塊                     無連結                     塊內使用register修飾

     靜態外連結               靜態         檔案                  外連結                       所有函數外

    靜態內連結                靜態        檔案                   內連結                       所有函數外,用static修飾

    靜態無連結               靜態          塊                      無連結                      塊內,使用static修飾

    線程儲存                  自動           線程                  無連結                       thread_local修飾

4、函數的儲存期

  外部函數:預設都是外部函數

      靜態函數:使用static 修飾,內串連

      內嵌函式:inline

5、注意

  •     auto 在c中表示自動儲存期
  •     但是auto在c++11 中表示自動推斷類型
  •     register 聲明後,並不一定會存到寄存器中,他只是一種請求。及時不存在寄存器中也不能對其取地址。同時可以存為register的類型可不多,

       因為有些類型太大了,寄存器存不下。

  • 靜態變數或者全域常量,都儲存在靜態區,在程式載入時已經執行賦值了 ,他們如果不被初始化,將會被初始化為0,存在bss段中。

6、申請記憶體

     malloc:malloc(sizeof(xxx))

     calloc:calloc(num,sizeof(xx))

     realloc: realloc(p,size)

7、限定符

      volatile

      const:

      restrict:

 

c語言 範圍、儲存期、連結屬性匯總

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.