關於C關鍵字volatile一點認知

2022-05-29 15:06:11 字數 575 閱讀 5347

近段時間在學習c語言,看到了volatile這個關鍵字,同時參考了一下網上的例子。

int test(volatile

intptr)

上面這段**在加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 一樣是一種型別修飾符,用它修飾的變數表示可以被某些編譯器未知的因素更改,比...