青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴(yán)以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

volatile的用法

避免編譯器優(yōu)化的用法 轉(zhuǎn)自<海濤的筆記>?? _lindwen
  
  
  volatile的本意是“易變的”
  
  由于訪問(wèn)寄存器的速度要快過(guò)RAM,所以編譯器一般都會(huì)作減少存取外部RAM的優(yōu)化。比如:
  
  static int i=0;
  
  int main(void)
  {
  ...
  while (1)
  {
  if (i) dosomething();
  }
  }
  
  /* Interrupt service routine. */
  void ISR_2(void)
  {
  i=1;
  }
  
  程序的本意是希望ISR_2中斷產(chǎn)生時(shí),在main當(dāng)中調(diào)用dosomething函數(shù),但是,由于編譯器判斷在main函數(shù)里面沒(méi)有修改過(guò)i,因此
  可能只執(zhí)行一次對(duì)從i到某寄存器的讀***作,然后每次if判斷都只使用這個(gè)寄存器里面的“i副本”,導(dǎo)致dosomething永遠(yuǎn)也不會(huì)被
  調(diào)用。如果將將變量加上volatile修飾,則編譯器保證對(duì)此變量的讀寫(xiě)***作都不會(huì)被優(yōu)化(肯定執(zhí)行)。此例中i也應(yīng)該如此說(shuō)明。
  
  一般說(shuō)來(lái),volatile用在如下的幾個(gè)地方:
  
  1、中斷服務(wù)程序中修改的供其它程序檢測(cè)的變量需要加volatile;
  
  2、多任務(wù)環(huán)境下各任務(wù)間共享的標(biāo)志應(yīng)該加volatile;
  
  3、存儲(chǔ)器映射的硬件寄存器通常也要加volatile說(shuō)明,因?yàn)槊看螌?duì)它的讀寫(xiě)都可能由不同意義;
  
  另外,以上這幾種情況經(jīng)常還要同時(shí)考慮數(shù)據(jù)的完整性(相互關(guān)聯(lián)的幾個(gè)標(biāo)志讀了一半被打斷了重寫(xiě)),在1中可以通過(guò)關(guān)中斷來(lái)實(shí)
  現(xiàn),2中可以禁止任務(wù)調(diào)度,3中則只能依靠硬件的良好設(shè)計(jì)了。
  
  
  
  volatile 的含義
  volatile總是與優(yōu)化有關(guān),編譯器有一種技術(shù)叫做數(shù)據(jù)流分析,分析程序中的變量在哪里賦值、在哪里使用、在哪里失效,分析結(jié)果可以用于常量合并,常量傳播等優(yōu)化,進(jìn)一步可以死代碼消除。但有時(shí)這些優(yōu)化不是程序所需要的,這時(shí)可以用volatile關(guān)鍵字禁止做這些優(yōu)化,volatile的字面含義是易變的,它有下面的作用:
  
  1 不會(huì)在兩個(gè)***作之間把volatile變量緩存在寄存器中。在多任務(wù)、中斷、甚至setjmp環(huán)境下,變量可能被其他的程序改變,編譯器 自己無(wú)法知道,volatile就是告訴編譯器這種情況。
  
  2 不做常量合并、常量傳播等優(yōu)化,所以像下面的代碼:
  volatile int i = 1;
  if (i > 0) ...
  
  if的條件不會(huì)當(dāng)作無(wú)條件真。
  
  3 對(duì)volatile變量的讀寫(xiě)不會(huì)被優(yōu)化掉。如果你對(duì)一個(gè)變量賦值但后面沒(méi)用到,編譯器常常可以省略那個(gè)賦值***作,然而對(duì)Memory Mapped IO的處理是不能這樣優(yōu)化的。
  
  前面有人說(shuō)volatile可以保證對(duì)內(nèi)存***作的原子性,這種說(shuō)法不大準(zhǔn)確,其一,x86需要LOCK前綴才能在SMP下保證原子性,其二,RISC根本不能對(duì)內(nèi)存直接運(yùn)算,要保證原子性得用別的方法,如atomic_inc。
  
  對(duì)于jiffies,它已經(jīng)聲明為volatile變量,我認(rèn)為直接用jiffies++就可以了,沒(méi)必要用那種復(fù)雜的形式,因?yàn)槟菢右膊荒鼙WC原子性。
  
  你可能不知道在Pentium及后續(xù)CPU中,下面兩組指令
  
  inc jiffies
  ;;
  mov jiffies, %eax
  inc %eax
  mov %eax, jiffies
  
  作用相同,但一條指令反而不如三條指令快。

posted on 2007-03-26 15:47 楊粼波 閱讀(192) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产欧美一区二区三区另类精品| 欧美高清你懂得| 国产美女精品视频免费观看| 亚洲一区欧美一区| 亚洲欧美日本伦理| 狠狠网亚洲精品| 欧美激情精品| 欧美日韩一区二区三区四区在线观看 | 亚洲欧美一区二区视频| 国产伦精品一区二区| 久热成人在线视频| 欧美连裤袜在线视频| 亚洲伊人观看| 久久久久久97三级| 99www免费人成精品| 亚洲亚洲精品三区日韩精品在线视频 | 久久久天天操| 夜夜嗨av一区二区三区四区| 亚洲手机成人高清视频| 国产在线乱码一区二区三区| 亚洲大片av| 国产精品护士白丝一区av| 久久久久国产精品厨房| 欧美成人自拍视频| 欧美一级电影久久| 欧美成人一区二区三区在线观看| 亚洲在线黄色| 蜜臀va亚洲va欧美va天堂| 亚洲一区欧美一区| 免费久久精品视频| 久久超碰97人人做人人爱| 欧美a级理论片| 久久精品动漫| 欧美视频成人| 国产一区二区三区久久悠悠色av| 亚洲国产日韩一区二区| 一区二区三区欧美| 亚洲国产高清在线| 午夜精品久久久久久| 日韩视频免费在线| 久久久久久黄| 欧美一区二区免费观在线| 欧美国产精品久久| 久久一区激情| 国产亚洲一区二区三区在线观看| 91久久精品一区二区别| 黄色国产精品| 性欧美大战久久久久久久免费观看 | 久久精品论坛| 久久精品国产久精国产爱| 欧美三区美女| 亚洲美女精品久久| 亚洲欧洲一区二区三区在线观看| 久久精品国产欧美激情| 亚洲欧美日韩成人| 欧美日韩中文字幕精品| 亚洲片区在线| 日韩午夜免费| 欧美激情亚洲精品| 亚洲高清激情| 亚洲精品国产日韩| 欧美 日韩 国产 一区| 欧美大片免费观看在线观看网站推荐 | 欧美一区免费视频| 欧美在线日韩| 狠狠色狠色综合曰曰| 欧美一区二区三区精品| 欧美在线观看视频在线 | 老鸭窝91久久精品色噜噜导演| 久久久av毛片精品| 国产欧美一区视频| 久久精品91久久久久久再现| 久久久99精品免费观看不卡| 国产综合色产| 老司机精品视频网站| 狼人社综合社区| 亚洲精品在线观看免费| 欧美激情亚洲综合一区| 亚洲日本电影在线| 亚洲天堂av在线免费| 国产精品一区二区女厕厕| 亚洲欧美日韩区| 欧美 日韩 国产 一区| 亚洲日本激情| 欧美亚州在线观看| 午夜精品久久久久久久久久久久| 久久久久久久综合| 亚洲国产精品尤物yw在线观看| 欧美日本精品| 亚洲欧美中日韩| 欧美国产成人在线| 亚洲在线视频观看| 狠狠色伊人亚洲综合成人| 你懂的国产精品| 在线亚洲自拍| 久久伊伊香蕉| 亚洲一区二区三区精品动漫| 国产欧美日韩综合| 99精品免费视频| 久久精品综合网| 亚洲精品久久久久久下一站 | 国产精品日本精品| 欧美99久久| 午夜性色一区二区三区免费视频| 欧美激情自拍| 久久精品亚洲热| 夜夜嗨av一区二区三区网站四季av| 国产欧美精品| 欧美日韩一级视频| 久久嫩草精品久久久精品一| 亚洲每日更新| 欧美福利视频| 久久人人爽国产| 亚洲免费在线视频一区 二区| 在线日韩中文字幕| 国产精品一区三区| 欧美日韩国产免费| 久久综合精品国产一区二区三区| 亚洲午夜影视影院在线观看| 亚洲国产老妈| 欧美成年视频| 午夜亚洲激情| 一本色道久久综合一区| 欧美激情日韩| 免费高清在线视频一区·| 亚洲欧美日韩在线播放| 日韩视频―中文字幕| 尤物网精品视频| 国产日韩欧美一区| 国产精品成人观看视频国产奇米| 欧美风情在线观看| 久久综合一区二区| 久久狠狠久久综合桃花| 亚洲欧美国产一区二区三区| 日韩亚洲国产欧美| 亚洲精品在线三区| 亚洲国产三级在线| 亚洲电影免费观看高清完整版在线观看| 久久av红桃一区二区小说| 亚洲欧美精品在线观看| 亚洲香蕉在线观看| 亚洲视频一区| 亚洲在线视频网站| 午夜精品福利视频| 欧美一区二区三区视频| 午夜精品久久久久久久久久久久久| 一本久久综合亚洲鲁鲁五月天| 亚洲精品视频在线| 99爱精品视频| 亚洲午夜电影| 午夜在线一区二区| 久久精品噜噜噜成人av农村| 欧美专区第一页| 久久成人免费日本黄色| 久久在线免费| 欧美黄色视屏| 亚洲精品视频在线播放| 一本色道久久| 亚洲欧美日韩国产中文| 欧美在线视频一区二区| 久久久久久久欧美精品| 猫咪成人在线观看| 欧美精品免费视频| 国产精品成人av性教育| 国产日韩欧美成人| 最新日韩av| 亚洲制服欧美中文字幕中文字幕| 欧美在线亚洲综合一区| 免费国产一区二区| 日韩视频免费观看高清在线视频| 亚洲一区二区在线看| 午夜一级久久| 欧美寡妇偷汉性猛交| 欧美视频在线视频| 精品盗摄一区二区三区| 亚洲精品乱码久久久久| 欧美成人网在线| 国产精品午夜春色av| 激情久久五月| 一区二区三区日韩精品| 久久久久久久精| 亚洲日本免费| 欧美亚洲免费电影| 欧美乱人伦中文字幕在线| 国产精品亚洲一区二区三区在线| 在线观看欧美日韩国产| 亚洲欧美美女| 亚洲国产成人av| 欧美亚洲免费| 国产精品va在线播放我和闺蜜| 一区二区亚洲欧洲国产日韩| 一区二区三区四区在线| 欧美不卡高清| 性色一区二区三区| 国产精品成人一区二区| 亚洲欧洲一区二区在线播放| 久久久99免费视频| 亚洲一区二区欧美| 欧美日韩一区二区三区四区在线观看 | 国产精品国色综合久久|