「變還是不變,這是乙個問題?」 volatile

2021-06-27 22:28:41 字數 544 閱讀 9490



「變還是不變,這是乙個問題?」——volatile

先看乙個簡單迴圈

for (int i=0; i<100000;i++); volatile 告訴編譯器i是隨時可能發生變化的,每次使用它的時候必須從i的位址中讀取,因而編譯器生成的可執行碼會重新從i的位址讀取資料放在k中。

而優化做法是,

乙個定義為volatile的變數是說這變數可能會被意想不到地改變,這樣,編譯器就不會去假設這個變數的值了。精確地說就是,優化器在用到這個變數時必須每次都小心地重新讀取這個變數的值,而不是使用儲存在暫存器裡的備份(舉個例子,假設程式猿連續使用了兩次變數x,如果乙個編譯器足夠機智,它就會在第二次呼叫時直接讀取暫存器裡的備份,從而達到節約時間的效果,這個過程被稱為快取,不可否認快取是乙個好的優化方式——但是這卻應該建立在這個變數x在兩次呼叫之間沒有被其他**修改數值的前提下)。

乙個引數既可以是const還可以是volatile嗎?當然是噠!乙個例子是唯讀的狀態暫存器。它是volatile因為它可能被意想不到地改變(比如說除程式之外的**)。它是const因為程式不應該試圖去修改它。

動態還是靜態,這是乙個問題

我們經常會討論到網頁內容的動態和靜態的問題,這是乙個沒有唯一答案的話題。1.靜態,我們損失了靈活性,意味著,任何使用者在任何時候看到的效果都是一樣的。2.動態,我們得到了靈活性,意味著,我們可以根據使用者的不同,時間的不同,或者僅僅是我們高興不高興,來決定要怎麼輸出內容到瀏覽器。但是,動態的功能增加...

React 還是Vue 這是乙個問題

1.應用場景 主要了解前端最熱門的兩款框架,他們之間的特點 優缺點 幫助我們有個初步認識和判斷,在開發專案時選擇合適的框架.2.學習 操作 暫參見 react還是vue 你該如何選擇?資料補充 weekly downloads 1,737,515 vue 7,740,838 react 更多資訊 後...

閱讀還是寫作,這是個問題

最近節奏不錯,喜歡閱讀,閱讀哪怕一點點之後,我就有好多東西想寫寫寫。舉個生動的比喻,就好像你往乙個神秘的壺裡倒進去一小杯水,它嘩啦啦的湧出幾大桶水。然後我也沒有辦法,只有不斷的接水,接受潛意識的召喚,不斷的寫寫寫,唯一能做的,就是給自己定下 不准修改,一次成型 的寫作習慣,逼自己提高寫作效率。那麼問...