1. gzyueqian
      13352868059

      嵌入式C語(yǔ)言循環(huán)條件介紹 粵嵌嵌入式培訓(xùn)哪里好?

      更新時(shí)間: 2019-04-01 14:58:52來(lái)源: 嵌入式培訓(xùn)瀏覽量:5312

        現(xiàn)在的企業(yè)對(duì)嵌入式軟件工程師定位差別也較大,主要是因?yàn)榇蠹覍?duì)嵌入式軟件工程師職責(zé)還不太了解。而從事嵌入式軟件開發(fā)必然離不開C語(yǔ)言的支撐。嵌入式C語(yǔ)言培訓(xùn)如何?今天我們先來(lái)談?wù)撓卵h(huán)條件。

        嵌入式C語(yǔ)言培訓(xùn)中,計(jì)數(shù)循環(huán)是程序中十分常用的流程控制結(jié)構(gòu)。在C與驗(yàn)證宏,常用下面累加計(jì)數(shù)的循環(huán)形式:

        for(loop=1,loop<=limit;loop++)

        而這種累加計(jì)數(shù)的方法符合一般的自然思維習(xí)慣,所以下面這種遞減方法很少使用:

        for(loop=limit;loop!=0;loop--)

        這兩種循環(huán)形式在邏輯上并沒(méi)有效率差異,但是映射到具體的體系結(jié)構(gòu)中時(shí),就產(chǎn)生了大大是不同。

        int fact1 (int limit)                             int fact1 (int limit)

        {                                                                           {

        ...                                                                          …

        for (i=1;i<=limit;i++)                                              for (i=limit;i!=0;i--)

        (                                                                            {

        fact=fact*i;                                                             fact=fact*i;

        )                                                                                   }

        ...                                                                                 …

        }                                                                           }

        Fact1                                                                     Fact2

        ... ...                                                                             … …

        0x000010: MUL R2,R1,R2                                       0x000010: MUL R0,R1,R0

        0x000014: ADD R1,R1,#1                                       0x000014: SUBS R1,R1,#1

        0x000018: CMP R2,R0                                            0x00001C: BNE 0x10

        0x00001C: BLE 0x10                                              … …

        ... ...

        0x000024: MOV PC,LR

        從中可以發(fā)現(xiàn),累加法比遞減法多用了1條指令,當(dāng)循環(huán)次數(shù)比較大時(shí),這2段代碼就會(huì)在性能上產(chǎn)生明顯的差異。其本質(zhì)原因是:當(dāng)進(jìn)行一個(gè)非0常數(shù)比較時(shí),必須用專門的CMP指令進(jìn)行判別。因此,在ARM的體系結(jié)構(gòu)下編程,建議采用遞減至0的方法來(lái)設(shè)置循環(huán)條件。

        若你想通過(guò)正規(guī)的嵌入式C語(yǔ)言培訓(xùn)讓自己得到成長(zhǎng),了解嵌入式培訓(xùn)班哪家好是很關(guān)鍵的,在這個(gè)方面,粵嵌教育值得你考慮。


      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 中文字幕亚洲综合久久 | 亚洲国产精品尤物yw在线观看 | 亚洲无线乱码字幕观看 | 婷婷丁香五月天在线免费视频 | 亚洲喷奶水中文字幕电影 | 午夜电影网中文字幕在线播放 |