真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【C語言】volatile關(guān)鍵字-創(chuàng)新互聯(lián)

目錄
  • 一、前言
  • 二、C語言中變量的訪問
    • 1. 讀變量
    • 2. 寫變量
  • 三、代碼優(yōu)化
    • 1. 硬件層面:
    • 2. 軟件層面:
  • 四、volatile的定義
  • 五、volatile的應(yīng)用場合
    • 1. 中斷
    • 2. 多線程
    • 3. 硬件寄存器


創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供尼瀘西網(wǎng)站建設(shè)、尼瀘西做網(wǎng)站、尼瀘西網(wǎng)站設(shè)計、尼瀘西網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、尼瀘西企業(yè)網(wǎng)站模板建站服務(wù),十余年尼瀘西做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
一、前言

??volatile 是 C語言 中規(guī)定的一個關(guān)鍵字,C語言課程中很少會提及,自己看書也容易忽視的一個 C語言 關(guān)鍵字。

??但是,volatile 關(guān)鍵字在嵌入式開發(fā)中很常用,并且在筆試面試時會經(jīng)常會讓你解釋 volatile 關(guān)鍵字的作用。


二、C語言中變量的訪問 1. 讀變量

??內(nèi)存 ? \Longrightarrow ? 寄存器(CPU)

2. 寫變量

??寄存器(CPU) ? \Longrightarrow ? 內(nèi)存

int a, b;  //為a,b申請內(nèi)存。
a = 1;     //1 ->寄存器
           //寄存器 ->內(nèi)存(&a)
b = a;     //內(nèi)存(&a)->寄存器
           //寄存器 ->內(nèi)存(&b)


三、代碼優(yōu)化

??在計算機工作時,內(nèi)存的訪問速度遠不及CPU的處理速度,為了提升計算機的整體性能,在軟硬件層面都有相應(yīng)的機制去優(yōu)化內(nèi)存的訪問,即減少內(nèi)存的訪問次數(shù)。

1. 硬件層面:

??引入高速緩存(Cache)

2. 軟件層面:

??① 編碼優(yōu)化(程序員)
??② 編譯優(yōu)化(編譯器)


四、volatile的定義

??volatile 的意思即為“易變的”,在 C語言 中當使用 volatile 修飾一個變量時,即表示這個變量的值隨時都有可能發(fā)生改變。

??因此編譯器在編譯的時候?qū)υ撟兞康拇嫒〔僮鞑荒苓M行優(yōu)化,即告訴編譯器每次存取該變量的時候都要從內(nèi)存中去存取而不是使用其之前在寄存器中的備份。

volatile int a = 1, b, c;  	//為a,b,c申請內(nèi)存并初始化。

b = a;  					// 內(nèi)存(&a)->寄存器
        					// 寄存器    ->內(nèi)存(&b)

c = a;  					// 內(nèi)存(&a)->寄存器 (避免這步被編譯器優(yōu)化省略,則添加volatile進行特征修飾)
        					// 寄存器    ->內(nèi)存(&c)


五、volatile的應(yīng)用場合 1. 中斷

??中斷服務(wù)程序中若修改其他程序中使用的變量,需用volatile修飾該變量。

2. 多線程

??多個線程都要訪問的變量一般需要加volatile修飾。

3. 硬件寄存器

??硬件寄存器的值有可能會隨著硬件工作狀態(tài)的變化而改變,需要加volatile修飾。


你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


當前題目:【C語言】volatile關(guān)鍵字-創(chuàng)新互聯(lián)
標題網(wǎng)址:http://weahome.cn/article/dshcsi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部