久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 關于 while(1)和for(;;)效率問題的一點想法

關于 while(1)和for(;;)效率問題的一點想法

作者: 時間:2016-11-29 來源:網絡 收藏
這幾天看到好友的文章關于while(1)和for(;;)效率的討論,手癢說了兩句。回頭一尋思,自己也只是推斷。沒有做任何實驗,我們就看看這兩種寫法到底有什么區別:


本文引用地址:http://cqxgywz.com/article/201611/323485.htm

實驗環境:IAR EWARM 5.2

我就隨便在一個嵌入式項目上做文章了,首先工程C語言編譯優化選擇了None, 輸出選擇帶匯編輸出,輸出的匯編文件和C語言對應上。




我在main函數里先用for(;;)寫了個死循環,我們看看編譯結果:

注意main.c生成了一個對應的main.s




可以看到,是用一條跳轉指令直接替代的for (;;)。


再更改一下代碼:



編譯一下看結果:


while(1)的循環也是一句跳轉指令所替代。


IAR EWARM 5.2下,可見 for(;;)和while(1)在未開優化代碼級別下,完全一樣。無任何區別。


我們再來看看 linux 下的arm-rtems4.9-gcc的結果:




上一頁 1 2 下一頁

關鍵詞: whilefor效率問

評論


技術專區

關閉