static \ const \ volatile 的含義

來源:互聯網
上載者:User

標籤:

1.static

在函數體內,一個被聲明為靜態變數在這一函數被調用的過程中維持其值不變

在模組內(函數體外),一個被聲明為靜態變數可以被模組內的所有函數訪問,但不能被模組外的其他函數訪問,即它是一個本地的全域變數

在模組內,一個被聲明為靜態啊函數只可以被這一模組內的其他函數調用,這個函數被限制在聲明他的模組的本地範圍內使用

2.const(搜尋Dan Saks總結的const)

const意味著“唯讀”

//聲明指標在C/C++中是從右往左讀const int a;//常整型數int const a;//常整型數const int *a;//指向常整型數的指標(整數不能修改)int *const a;//指向整型數的常指標(指標不能修改)int const * a const;//指向常整型數的常指標(整型數 指標均不能修改)

3.volatile

被定義為volatile的變數可能會被意想不到的改變,這樣編譯器就不會假設這個變數的值。最佳化器在用到這個變數的時候必須每次都小心的重新讀取這個變數的值,而不是使用在寄存器中的備份

使用volatile的例子:

平行裝置的硬體寄存器

一個中斷服務子程式中會訪問到的非自動變數

多線程應用中被幾個任務共用的變數

一個參數可以是const還可以是volatile,例如,唯讀狀態寄存器,volatile因為他可能被意想不到的改變,const因為程式不應該試圖去修改它。

一個指標可以是volatile,例如,當一個中斷服務子程式修改一個指向一個buffer的指標時。

static \ const \ volatile 的含義

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.