近段時間在學習c語言,看到了volatile這個關鍵字,同時參考了一下網上的例子。
int test(volatileintptr)
上面這段**在加volatile與不加產生的彙編碼如下:
#加volatile關鍵字的彙編碼:test:.
lfb0:
.cfi_startproc
movl %edi, -
4(%rsp)
movl -
4(%rsp), %edx
movl -
4(%rsp), %eax
addl %edx, %eax
ret.cfi_endproc
#不加volatile關鍵字的彙編碼test:.
lfb0:
.cfi_startproc
leal (%rdi,%rdi), %eax
ret.cfi_endproc
終上所述得出的結論為:
加關鍵字會讓編譯器不去做優化
關於關鍵字 volatile
關於 volatile 的使用,也是 c 語言面試的月經問題。標準答案來了 翻譯一下 volatile 是在宣告變數時,使用的乙個修飾符。這個修飾符是為了告訴編譯器,這個變數雖然沒有在上下文中引用,但是它的值可能隨時會改變,所以,不要去對它進行優化動作!使用場景,最多的,就是對硬體暫存器的操作 比如...
關於關鍵字 volatile
關於 volatile 的使用,也是 c 語言面試的月經問題。標準答案來了 翻譯一下 volatile 是在宣告變數時,使用的乙個修飾符。這個修飾符是為了告訴編譯器,這個變數雖然沒有在上下文中引用,但是它的值可能隨時會改變,所以,不要去對它進行優化動作!使用場景,最多的,就是對硬體暫存器的操作 比如...
C語言volatile關鍵字
volatile 是易變的 不穩定的意思。很多人根本就沒見過這個關鍵字,不知道它的存在。也有很多程式設計師知道它的存在,但從來沒用過它。我對它有種 楊家有女初長成,養在深閨人未識 的感覺。volatile 關鍵字和const 一樣是一種型別修飾符,用它修飾的變數表示可以被某些編譯器未知的因素更改,比...