請教一下C語言的問題

2023-01-01 03:56:09 字數 712 閱讀 6128

1樓:匿名使用者

當要求使用volatile 宣告的變數的值的時候,系統總是重新從它所在的記憶體讀取資料,即使它前面的指令剛剛從該處讀取過資料。而且讀取的資料立刻被儲存。

通俗的說,就是時刻更新的意思。編譯系統可能會優化程式,常用的變數放在cpu的暫存器裡運算。這時如果你去記憶體中尋找這個變數的話,它可能是個意料之外的值。

但是如果這個變數用volatile宣告的話,每次計算都會直接在記憶體中讀寫值。當然對於大多數程式聲不宣告其實是沒太大關係的,只有在除錯模式下執行,你可以隨時隨地看到記憶體情況的時候,你才能感覺到volative的作用。另外如果這個變數要時刻供其他程式共享,也要宣告為volative。

(volatile unsigned int *)表示式之前加「(型別)」表示強制型別轉換,這裡表示0x7000是一個指向無符號整數的指標。

2樓:路人拉麵

第一個是個變數儲存在記憶體中

第二個是常量,就是數字,預設型別double

volatile 影響編譯器編譯的結果,指出,volatile 變數是隨時可能發生變化的,與volatile變數有關的運算,不要進行編譯優化,以免出錯

3樓:匿名使用者

舉個例子

#define i 1;

if(i)

編譯器可能編譯為if(true)

而加上volatile編譯器則不會做優化處理。

請教C語言問題,忘高手指教下,請教一個C語言問題,忘高手指教下。

注意你的程式,是用指標作為形參。也就是說當你呼叫prt a,b,c 的時候,系統會在prt函式執行中,定義三個區域性變數,int x,int y,int z,這三個指標分別指向你傳入的a,b,c。當你對這三個指標所指向的值做改變的時候,也就是對abc做了改變,這個也就是所謂的傳遞地址。但是請注意,你...

請教一下c語言中結構體中 和 的區別和聯絡,我看到有的地方

如果來變數是定義成一般的結自 構體變數,用 bai.如果變數是定義du成結構體指標變數,則用 即定義zhi了一dao個結構體的變數 例項 後可以用.直接呼叫其內部成員。而定義成結構體的指標則需用指標 來訪問成員。例如 struct student struct student p,q int x x...

用C語言做以下題目,請教高手最好除錯一下!用最簡單的語句哈,要不看不懂哈

0 include main 1 include main 先給你這麼多,不帶要編了 才20分在加點我繼續累累 等待有緣人吧 這都嚇死人了 你一下弄那麼多,誰還想給你編啊,是吧?這也太多了,自己編吧 一道簡單的c語言題目。請教高手詳細解答!謝謝!a 錯誤是因為轉義字元它是由反斜線加一個特定的字元構成...