C語言自學-1

來源:互聯網
上載者:User

回過頭來看看,原來最基礎的東西還沒有掌握,很高興能有這麼一段比較悠閑的時間,可以重新自學一下C語言.

<1> const char* 變數,指向常量的指標可以指向非常量,但不能通過該指標改變所指對象的值.

<2> #define定義的符號都是直接替換的

<3> volatile定義的說明變數的內容,會在程式未知的情況下,隨時發生變化.

        volatile變數可變,允許除了程式之外的比如硬體來修改他的內容

       訪問該資料任何時候都會直接存取該地址處內容,即通過cache提高訪問速度的最佳化被取消

       比如,硬體裝置的終端更改了它,現在硬體裝置往往也有自己的私人記憶體位址,比如顯存

      他們一般是通過映象的方式,反映到一段特定的記憶體位址當中

      這樣,在某些條件下,程式就可以直接存取這些私人記憶體了

      另外,比如共用的記憶體位址,多個程式都對它操作的時候

      你的程式並不知道,這個記憶體何時被改變了

     如果不加這個volatile修飾,程式是利用cache當中的資料,那個可能是過時的了.

      加了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.