新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 高效的C編程之:條件執(zhí)行

高效的C編程之:條件執(zhí)行

作者: 時(shí)間:2013-09-30 來源:網(wǎng)絡(luò) 收藏

4.3

指令都是可以的。在代碼中使用指令可以減小代碼密度并提高程序執(zhí)行效率。典型的條件執(zhí)行語句用在比較指令之后,形成程序的分支跳轉(zhuǎn)結(jié)構(gòu)。下面的例子顯示了條件執(zhí)行指令的典型用法。

本文引用地址:http://m.butianyuan.cn/article/257022.htm

CMPx,#0

MOVGEy,#1

MOVLTy,#0

但當(dāng)代碼中連續(xù)的條件執(zhí)行指令超過4條時(shí),就會(huì)影響程序的執(zhí)行速度。所以編譯器在編譯程序時(shí),限制條件指令連續(xù)出現(xiàn)的次數(shù)。

編譯器常把C語言中的if…else結(jié)構(gòu)編譯成條件執(zhí)行指令,但子程序調(diào)用一般是不能條件執(zhí)行的。所以在編程時(shí)盡可以地使用簡(jiǎn)單的if…else結(jié)構(gòu)完成程序的分支操作,而避免使用過多的子程序調(diào)用。

下面的例子顯示了編譯器如何利用指令的條件執(zhí)行。

intg(inta,intb,intc,intd)

{if(a>0b>0c0d0)/*程序分組條件*/

returna+b+c+d;

return-1;

}

g

CMPa1,#0

CMPGTa2,#0

BLE|L000024.J4.g|

CMPa3,#0

CMPLTa4,#0

ADDLTa1,a1,a2

ADDLTa1,a1,a3

ADDLTa1,a1,a4

MOVLTpc,lr

|L000024.J4.g|

MVNa1,#0

MOVpc,lr



關(guān)鍵詞: C編程 條件執(zhí)行 ARM

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉