一個參數既可以是const還可以是volatile


可以的,例如只讀的狀態寄存器。它是volatile因為它可能被意想不到地改變。它是const因為程序不應該試圖去修改它。

一個定義為volatile的變量是說這變量可能會被意想不到地改變,這樣,編譯器就不會去假設這個變量的值了。精確地說就是,優化器在用到這個變量時必須每次都小心地重新讀取這個變量的值,而不是使用保存在寄存器里的備份



volatile修飾符告訴complier變量值可以以任何不被程序明確指明的方式改變,最常見的例子就是外部端口的值,它的變化可以不用程序內的任何賦值語句就有可能改變的,這種變量就可以用volatile來修飾,complier不會優化掉它。
const修飾的變量在程序里面是不能改變的,但是可以被程序外的東西修改,就象上面說的外部端口的值,如果僅僅使用const,有可能complier會優化掉這些變量,加上volatile就萬無一失了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM