北京網(wǎng)站建設(shè)之C程序建設(shè)相關(guān)知識【再續(xù)】

2021-10-29    分類: 網(wǎng)站建設(shè)

關(guān)于北京網(wǎng)站建設(shè)之C程序建設(shè)的相關(guān)知識創(chuàng)新互聯(lián)已為在家介紹了很多了,不過相信那些想要深入學(xué)習(xí)的程序員們還是覺得不夠,依然迫切的需求用戶專業(yè)的知識來豐富自己的工作技能。為了幫助大家可以更加深入的了解C程序建設(shè),創(chuàng)新互聯(lián)繼續(xù)為大家介紹一些關(guān)于這方面的知識。

當程序員在為英文網(wǎng)站建設(shè)、眾籌網(wǎng)站平臺建設(shè)、企業(yè)營銷型網(wǎng)站建設(shè)等不同類型的網(wǎng)站建設(shè)和開發(fā)程序時,如果遇到了關(guān)于C程序建設(shè)方面的問題可以隨時咨詢創(chuàng)新互聯(lián)的在線客服,我們將隨時為您提供服務(wù)。下面創(chuàng)新互聯(lián)要為在家介紹的是使用自加、自減指令和減少運算的強度兩方面的內(nèi)容。




7、使用自加、自減指令的問題
在C程序建設(shè)中一般情況下使用自加、自減指令和復(fù)合賦值表達式(如a-=1及a+=1等)都能夠生成高質(zhì)量的程序代碼,在編譯器中也能夠生成inc和dec之類的指令。但是如果使用a=a+1或a=a-1之類的指令,很多C編譯器就會生成二到三個字節(jié)的指令,所以程序員工選擇編輯器時一定要注意適用性。例,ICCAVR、GCCAVR、IAR等C編譯器生成的代碼是一樣的,也能夠生成高質(zhì)量的inc和dec之類的的代碼。
8、減少運算的強度的問題
在C程序建設(shè)中創(chuàng)新互聯(lián)建議程序員盡量減少運算的強度,可以使用運算量小但功能相同的表達式替換原來復(fù)雜的的表達式,這樣做對加快速度有幫助。
下面介紹幾個減少運算的強度的實例。
(1)、求余運算
方式a=a%8可以改為a=a&7
說明:位操作只需一個指令周期即可完成,而大部分的C編譯器的“%”運算均是調(diào)用子程序來完成,代碼長、執(zhí)行速度慢。所以我們只要求是求2n方的余數(shù),均可使用位操作的方法來代替。
(2)平方運算
方式a=pow(a,2.0)可以改為a=a*a,a=pow(a,3.0);更改為a=a*a*a。
說明:在有內(nèi)置硬件乘法器的單片機中(如51系列),乘法運算比求平方運算快得多,因為浮點數(shù)的求平方是通過調(diào)用子程序來實現(xiàn)的,在自帶硬件乘法器的AVR單片機中,如ATMega163中,乘法運算只需2個時鐘周期就可以完成。既使是在沒有內(nèi)置硬件乘法器的AVR單片機中,乘法運算的子程序比平方運算的子程序代碼短,執(zhí)行速度快。
(3)用移位實現(xiàn)乘除法運算
方式a=a*4、b=b/4可以改為a=a<<2; [Page]、b=b>>2,a=a*9可以改為a=(a<<3)+a。

說明:通常如果需要乘以或除以2n,都可以用移位的方法代替。在ICCAVR中,如果乘以2n,都可以生成左移的代碼,而乘以其它的整數(shù)或除以任何數(shù),均調(diào)用乘除法子程序。用移位的方法得到代碼比調(diào)用乘除法子程序生成的代碼效率高。實際上,只要是乘以或除以一個整數(shù),均可以用移位的方法得到結(jié)果。

網(wǎng)頁名稱:北京網(wǎng)站建設(shè)之C程序建設(shè)相關(guān)知識【再續(xù)】
標題URL:http://muchs.cn/news19/133469.html

網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營銷seo公司;服務(wù)項目有網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)