欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C++中使用volatile有什么作用

本篇內(nèi)容主要講解“C++中使用volatile有什么作用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“C++中使用volatile有什么作用”吧!

創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元安岳做網(wǎng)站,已為上家服務(wù),為安岳各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

CP.200:使用volatile只能表明該變量是非C++內(nèi)存

Reason(原因)

volatile is used to refer to objects that are shared with "non-C++" code or hardware that does not follow the C++ memory model.

volatile用于表明參照的對(duì)象需要和非C++代碼或硬件共享而遵守C++內(nèi)存模型。

Example(示例)

const volatile long clock;

這段代碼描述一個(gè)不斷被時(shí)鐘電路更新的寄存器。clock被定義為volatile是因?yàn)樗闹翟谑褂盟腃++程序沒有任何動(dòng)作的情況下被修改。例如,兩次讀取clock經(jīng)常可以得到不同的值,因此優(yōu)化器最好不要優(yōu)化掉這段代碼中的第二個(gè)讀操作。

long t1 = clock;
// ... no use of clock here ...
long t2 = clock;

clock is const because the program should not try to write to clock.

clock定義為常量是為了表明程序不應(yīng)該對(duì)clock進(jìn)行寫操作。

Note(注意)

Unless you are writing the lowest level code manipulating hardware directly, consider volatile an esoteric feature that is best avoided.

除非你正在編寫直接操作硬件的低層次代碼,否則將volatile作為冷門功能并最好避免使用。

Example(示例)

Usually C++ code receives volatile memory that is owned elsewhere (hardware or another language):

通常情況下,C++代碼接受有其他某處擁有的volatile內(nèi)存(硬件或其他語言):

int volatile* vi = get_hardware_memory_location();
   // note: we get a pointer to someone else's memory here
   // volatile says "treat this with extra respect"

某些C++代碼會(huì)分配volatile內(nèi)存并通過故意泄露指針的方式和其他部分共享(硬件或其他語言)它。

static volatile long vl;
please_use_this(&vl);   // escape a reference to this to "elsewhere" (not C++)
Example, bad(反面示例)

volatile類型的局部變量幾乎一定是錯(cuò)的--如果它們只能短期存在,怎么能分享給其他語言或硬件呢?由于同樣的原因,該原則也幾乎一定適用于成員變量。

void f()
{
   volatile int i = 0; // bad, volatile local variable
   // etc.
}

class My_type {
   volatile int i = 0; // suspicious, volatile member variable
   // etc.
};
Note(注意)

In C++, unlike in some other languages, volatile has nothing to do with synchronization.

和其他語言不同,在C++中不會(huì)為同步做任何事情。

Enforcement(實(shí)施建議)
  • Flag volatile T local and member variables; almost certainly you intended to use atomic<T> instead.

  • 標(biāo)記volatile類型的局部變量和成員變量;幾乎可以肯定的說你想用的其實(shí)是atomatic<T>。

到此,相信大家對(duì)“C++中使用volatile有什么作用”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

分享名稱:C++中使用volatile有什么作用
本文URL:http://chinadenli.net/article30/jiepso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈定制網(wǎng)站、用戶體驗(yàn)、響應(yīng)式網(wǎng)站、App開發(fā)網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)