新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 高效的C編程之:布爾表達式

高效的C編程之:布爾表達式

作者: 時間:2013-09-30 來源:網絡 收藏

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

下面是C語言中的關系操作被編譯的例子。

C源文件如下所示。

intg(intx,inty)

{

if((x+y)0)

return1;

else

return0;

}

編譯后的結果如下。

g

ADDSa1,a1,a2

MOVPLa1,#0

MOVMIa1,#1

MOVpc,lr

所以,在使用C語言編程時,關系操作最好轉換成和零相關的,這樣既可以減少代碼密度,也可以提高程序的執(zhí)行效率。

C語言中,沒有和程序狀態(tài)寄存器的C位和V位直接相關的指令,所以要在程序中檢測這些標志,只能使用內嵌匯編。但C編譯器支持無符號溢出操作,下面的例子顯示了在有溢出操作時,編譯器對程序的處理。

C源代碼如下所示。

intsum(intx,inty)

{

intres;

res=x+y;

if((unsigned)res(unsigned)x)/*判斷進位標志是否進位*/

res++;

returnres;

}

編譯的匯編文件如下所示。

sum

ADDSa2,a1,a2

ADCa2,a2,#0

MOVa1,a2

MOVpc,lr


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉