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

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

if和switch效率的再研究

昨天發現了一本叫做CSAPP的書,終于找到了關于switch問題的解答。
這是一段C代碼:


GCC匯編出來的代碼如下:

CODE:

    .file    "switch.c"
    .version    "01.01"
gcc2_compiled.:
.text
    .align 4
.globl switch_eg
    .type     switch_eg,@function
switch_eg:
    pushl %ebp
    movl %esp,%ebp
    movl 8(%ebp),%edx
    leal -100(%edx),%eax
    cmpl ,%eax
    ja .L9
    jmp *.L10(,%eax,4)
    .p2align 4,,7
.section    .rodata
    .align 4
    .align 4
.L10:
    .long .L4
    .long .L9
    .long .L5
    .long .L6
    .long .L8
    .long .L9
    .long .L8
.text
    .p2align 4,,7
.L4:
    leal (%edx,%edx,2),%eax
    leal (%edx,%eax,4),%edx
    jmp .L3
    .p2align 4,,7
.L5:
    addl ,%edx
.L6:
    addl ,%edx
    jmp .L3
    .p2align 4,,7
.L8:
    imull %edx,%edx
    jmp .L3
    .p2align 4,,7
.L9:
    xorl %edx,%edx
.L3:
    movl %edx,%eax
    movl %ebp,%esp
    popl %ebp
    ret
.Lfe1:
    .size     switch_eg,.Lfe1-switch_eg
    .ident    "GCC: (GNU) 2.95.3 20010315 (release)"
在上面的匯編代碼中我們可以很清楚的看到switch部分被分配了一個連續的查找表,switch case中不連續的部分也被添加上了相應的條目,switch表的大小不是根據case語句的多少,而是case的最大值的最小值之間的間距。在選擇相應 的分支時,會先有一個cmp子句,如果大于查找表的最大值,則跳轉到default子句。而其他所有的case語句的耗時都回事O(1)

相比于if-else結構,switch的效率絕對是要高很多的,但是switch使用查找表的方式決定了case的條件必須是一個連續的常量。而if-else則可以靈活的多。

posted on 2008-12-17 16:47 肥仔 閱讀(1087) 評論(1)  編輯 收藏 引用 所屬分類: C++ 基礎

評論

# re: if和switch效率的再研究[未登錄]  回復  更多評論   

標準中沒有規定怎么處理,因此具體結果依賴于不同的編譯器。
2008-12-17 20:13 | Chipset
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲日本免费| 国产欧美日韩91| 国产精品美女久久久久久免费| 亚洲天堂成人在线观看| 亚洲一二区在线| 精品成人在线视频| 亚洲国产激情| 欧美国产日韩视频| 欧美一区二区三区免费观看| 久久久欧美一区二区| 亚洲香蕉网站| 美女脱光内衣内裤视频久久影院 | 亚洲精品在线视频| 国产欧美日韩视频在线观看| 99在线精品免费视频九九视| 亚洲激情综合| 久久在线免费观看| 看片网站欧美日韩| 国产精品扒开腿做爽爽爽视频 | 久久精品官网| 免费人成网站在线观看欧美高清| 亚洲无线观看| 老色鬼久久亚洲一区二区| 午夜久久99| 欧美日本免费| 欧美激情一区二区三区全黄| 国产欧亚日韩视频| 一区二区黄色| 日韩亚洲欧美精品| 卡一卡二国产精品| 久热精品视频在线| 国产午夜一区二区三区| 一区二区日韩免费看| 亚洲精品国产精品久久清纯直播| 欧美在线看片| 久久精品99| 国产日韩欧美一区在线| 亚洲视频一区在线| 在线亚洲激情| 欧美日韩国产高清| 亚洲国产日韩在线一区模特| 亚洲福利国产精品| 久久女同互慰一区二区三区| 久久久久久电影| 国产一区二区三区自拍| 亚洲免费一在线| 亚洲欧美在线免费观看| 国产精品国产三级国产专播品爱网| 亚洲精品黄网在线观看| 99精品视频免费全部在线| 欧美精品少妇一区二区三区| 亚洲福利在线看| 亚洲精品无人区| 欧美激情亚洲激情| 亚洲久久一区二区| 亚洲午夜激情| 国产精品国产三级国产专播精品人| 一区二区三区www| 亚洲欧美日韩国产成人| 国产精品亚洲综合色区韩国| 午夜精品久久久久| 久久久久久久久久久久久女国产乱 | 欧美激情亚洲另类| 午夜精品久久久久久久久| 99精品视频免费观看视频| 国产精品揄拍500视频| 欧美一区二区在线免费播放| 中文一区二区在线观看| 欧美激情一区二区三区蜜桃视频| 性欧美超级视频| 国产区在线观看成人精品| 欧美在线视频导航| 亚洲一二三区视频在线观看| 男女精品视频| 欧美午夜激情小视频| 亚洲国产成人精品女人久久久 | 午夜在线成人av| 久久久蜜桃精品| 亚洲黄色小视频| 欧美日韩精品一区二区三区| 亚洲伊人观看| 麻豆9191精品国产| 一区二区三区日韩| 国产区精品在线观看| 裸体歌舞表演一区二区| 9久re热视频在线精品| 久久激情综合网| 99精品视频一区二区三区| 国产精品一区三区| 你懂的视频欧美| 亚洲综合999| 亚洲福利视频在线| 欧美一区二区三区电影在线观看| 亚洲高清不卡一区| 国产精品毛片在线| 男男成人高潮片免费网站| 亚洲综合视频在线| 最新中文字幕一区二区三区| 午夜视频久久久久久| 亚洲精品极品| 国产亚洲一区精品| 欧美日韩精品一本二本三本| 久久久久亚洲综合| 亚洲午夜精品视频| 欧美国产第一页| 欧美中文字幕久久| 99视频一区二区三区| 在线不卡亚洲| 国产欧美一区二区三区沐欲| 欧美啪啪成人vr| 老色鬼久久亚洲一区二区| 亚洲欧美一区在线| 国产精品99久久99久久久二8| 欧美电影专区| 亚洲国产精品一区二区三区| 亚洲欧美日韩在线不卡| 亚洲自拍电影| 久久视频一区| 亚洲精品专区| 亚洲精一区二区三区| 国产欧美综合在线| 免费在线国产精品| 欧美成人一区在线| 亚洲伦理一区| 欧美一级大片在线观看| 国产午夜精品在线| 狠狠色综合色综合网络| 欧美激情中文字幕乱码免费| 欧美在线视频在线播放完整版免费观看 | 国产精品区免费视频| 欧美日韩国产精品 | 欧美二区在线观看| 久久久夜色精品亚洲| 久久国产精彩视频| 开元免费观看欧美电视剧网站| 亚洲一二三级电影| 国产精品黄色| 亚洲欧美三级在线| 亚洲欧洲在线一区| 久久午夜精品| 久久久久久欧美| 久久美女艺术照精彩视频福利播放| 亚洲视频一起| 亚洲欧美激情视频| 亚欧美中日韩视频| 性xx色xx综合久久久xx| 欧美一区视频| 久久蜜桃香蕉精品一区二区三区| 久久久久久久欧美精品| 老司机精品视频网站| 欧美成人综合| 亚洲精品一区二区三| 夜夜爽夜夜爽精品视频| 亚洲在线视频| 久久不射2019中文字幕| 久热成人在线视频| 欧美人交a欧美精品| 国产精品激情| 国产一区二区三区精品久久久 | 欧美高清自拍一区| 亚洲三级网站| a4yy欧美一区二区三区| 亚洲自拍另类| 老司机精品久久| 欧美区视频在线观看| 国产欧美日本在线| 亚洲黄色一区| 亚洲天堂偷拍| 久久久久综合| 最近中文字幕日韩精品| 亚洲视频免费看| 久久婷婷久久| 欧美三级日韩三级国产三级| 国产日韩欧美精品一区| 亚洲欧洲日韩女同| 香蕉久久一区二区不卡无毒影院| 欧美中在线观看| 亚洲国产欧美日韩另类综合| 亚洲视频免费观看| 麻豆国产精品777777在线| 欧美午夜一区二区| 亚洲大胆av| 午夜欧美精品久久久久久久| 欧美成人第一页| 亚洲综合999| 欧美日本亚洲韩国国产| 国产在线精品成人一区二区三区| 亚洲精品视频在线看| 久久精品欧美日韩| 在线电影院国产精品| 夜夜狂射影院欧美极品| 国产香蕉久久精品综合网| 亚洲最新中文字幕| 噜噜噜91成人网| 亚洲自拍都市欧美小说| 欧美日韩国产在线看| 免费观看不卡av| 久久激情综合网| 精品av久久707| 国产日韩精品一区观看|