C++筆記

來源:互聯網
上載者:User

標籤:讀取   blank   target   logs   錯誤   改變   而不是   c++筆記   最佳化   

#volatile [1]volatile關鍵字是一種類型修飾符,用它聲明的類型變數表示可以被某些編譯器未知的因素更改,比如:作業系統、硬體或者其它線程等。遇到這個關鍵字聲明的變數,編譯器對訪問該變數的代碼就不再進行最佳化,從而可以提供對特殊地址的穩定訪問。聲明時文法:int volatile vInt; 當要求使用 volatile 聲明的變數的值的時候,系統總是重新從它所在的記憶體讀取資料,即使它前面的指令剛剛從該處讀取過資料。而且讀取的資料立刻被儲存。多線程下的volatile   有些變數是用volatile關鍵字聲明的。當兩個線程都要用到某一個變數且該變數的值會被改變時,應該用volatile聲明,該關鍵字的作用是防止最佳化編譯器把變數從記憶體裝入CPU寄存器中。如果變數被裝入寄存器,那麼兩個線程有可能一個使用記憶體中的變數,一個使用寄存器中的變數,這會造成程式的錯誤執行。volatile的意思是讓編譯器每次操作該變數時一定要從記憶體中真正取出,而不是使用已經存在寄存器中的值。

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.