新聞中心

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

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

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

        本文引用地址:http://www.104case.com/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語言編程時,關系操作最好轉換成和零相關的,這樣既可以減少代碼密度,也可以提高程序的執行效率。

        C語言中,沒有和程序狀態寄存器的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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 百色市| 酒泉市| 商城县| 凤冈县| 莒南县| 麻江县| 平山县| 娄烦县| 高青县| 云梦县| 濮阳市| 都匀市| 开封县| 扎鲁特旗| 五常市| 成安县| 汉源县| 全州县| 北辰区| 广安市| 四子王旗| 牟定县| 常熟市| 防城港市| 安义县| 凯里市| 怀仁县| 牡丹江市| 类乌齐县| 张家口市| 南丹县| 拉萨市| 策勒县| 民丰县| 正定县| 山丹县| 新疆| 桂林市| 凤冈县| 南江县| 普宁市|