天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當前位置:主頁 > 論文百科 > 造句*成語 >

C++不常用關鍵字(

發(fā)布時間:2017-04-27 23:03

  本文關鍵詞:leave,由筆耕文化傳播整理發(fā)布。


       總結__finally塊被執(zhí)行的流程時,無外乎三種情況。第一種就是順序執(zhí)行到__finally塊區(qū)域內(nèi)的代碼,這種情況很簡單,容易理解;第二種就是goto語句或return語句引發(fā)的程序控制流離開當前__try塊作用域時,系統(tǒng)自動完成對__finally塊代碼的調(diào)用;第三種就是由于在__try塊中出現(xiàn)異常時,導致程序控制流離開當前__try塊作用域,這種情況下也是由系統(tǒng)自動完成對__finally塊的調(diào)用。無論是第 2種,還是第3種情況,毫無疑問,它們都會引起很大的系統(tǒng)開銷,編譯器在編譯此類程序代碼時,它會為這兩種情況準備很多的額外代碼。一般第2種情況,被稱為“局部展開(LocalUnwinding)”;第3種情況,被稱為“全局展開(GlobalUnwinding)”。在后面闡述SEH實現(xiàn)的時候會詳細分析到這一點。
第3種情況,,也即由于出現(xiàn)異常而導致的“全局展開”,對于程序員而言,這也許是無法避免的,因為你在利用異常處理機制提高程序可靠健壯性的同時,不可避免的會引起性能上其它的一些開銷。呵呵!這世界其實也算瞞公平的,有得必有失。

  但是,對于第2種情況,程序員完全可以有效地避免它,避免“局部展開”引起的不必要的額外開銷。實際這也是與結構化程序設計思想相一致的,也即一個程序模塊應該只有一個入口和一個出口,程序模塊內(nèi)盡量避免使用goto語句等。但是,話雖如此,有時為了提高程序的可讀性,程序員在編寫代碼時,有時可能不得不采用一些與結構化程序設計思想相悖的做法,例如,在一個函數(shù)中,可能有多處的return語句。針對這種情況,SEH提供了一種非常有效的折衷方案,那就是__leave關鍵字所起的作用,它既具有像goto語句和return語句那樣類似的作用(由于檢測到某個程序運行中的錯誤,需要馬上離開當前的 __try塊作用域),但是又避免了“局部展開” 的額外開銷。還是看個例子吧!代碼如下:


  本文關鍵詞:leave,由筆耕文化傳播整理發(fā)布。



本文編號:331579

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/wenshubaike/xkhy/331579.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權申明:資料由用戶e4a35***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com