關(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)于這方面的知識。
當(dāng)程序員在為英文網(wǎng)站建設(shè)、眾籌網(wǎng)站平臺建設(shè)、企業(yè)營銷型網(wǎng)站建設(shè)等不同類型的網(wǎng)站建設(shè)和開發(fā)程序時(shí),如果遇到了關(guān)于C程序建設(shè)方面的問題可以隨時(shí)咨詢創(chuàng)新互聯(lián)的在線客服,我們將隨時(shí)為您提供服務(wù)。下面創(chuàng)新互聯(lián)要為在家介紹的是使用自加、自減指令和減少運(yùn)算的強(qiáng)度兩方面的內(nèi)容。
7、使用自加、自減指令的問題在C程序建設(shè)中一般情況下使用自加、自減指令和復(fù)合賦值表達(dá)式(如a-=1及a+=1等)都能夠生成高質(zhì)量的程序代碼,在編譯器中也能夠生成inc和dec之類的指令。但是如果使用a=a+1或a=a-1之類的指令,很多C編譯器就會(huì)生成二到三個(gè)字節(jié)的指令,所以程序員工選擇編輯器時(shí)一定要注意適用性。例,ICCAVR、GCCAVR、IAR等C編譯器生成的代碼是一樣的,也能夠生成高質(zhì)量的inc和dec之類的的代碼。
8、減少運(yùn)算的強(qiáng)度的問題在C程序建設(shè)中創(chuàng)新互聯(lián)建議程序員盡量減少運(yùn)算的強(qiáng)度,可以使用運(yùn)算量小但功能相同的表達(dá)式替換原來復(fù)雜的的表達(dá)式,這樣做對加快速度有幫助。
下面介紹幾個(gè)減少運(yùn)算的強(qiáng)度的實(shí)例。(1)、求余運(yùn)算方式a=a%8可以改為a=a&7
說明:位操作只需一個(gè)指令周期即可完成,而大部分的C編譯器的“%”運(yùn)算均是調(diào)用子程序來完成,代碼長、執(zhí)行速度慢。所以我們只要求是求2n方的余數(shù),均可使用位操作的方法來代替。
(2)平方運(yùn)算方式a=pow(a,2.0)可以改為a=a*a,a=pow(a,3.0);更改為a=a*a*a。
說明:在有內(nèi)置硬件乘法器的單片機(jī)中(如51系列),乘法運(yùn)算比求平方運(yùn)算快得多,因?yàn)楦↑c(diǎn)數(shù)的求平方是通過調(diào)用子程序來實(shí)現(xiàn)的,在自帶硬件乘法器的AVR單片機(jī)中,如ATMega163中,乘法運(yùn)算只需2個(gè)時(shí)鐘周期就可以完成。既使是在沒有內(nèi)置硬件乘法器的AVR單片機(jī)中,乘法運(yùn)算的子程序比平方運(yùn)算的子程序代碼短,執(zhí)行速度快。
(3)用移位實(shí)現(xiàn)乘除法運(yù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í)際上,只要是乘以或除以一個(gè)整數(shù),均可以用移位的方法得到結(jié)果。
新聞標(biāo)題:北京網(wǎng)站建設(shè)之C程序建設(shè)相關(guān)知識【再續(xù)】
當(dāng)前鏈接:http://jinyejixie.com/news/133469.html
網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營銷seo公司;服務(wù)項(xiàng)目有網(wǎng)站建設(shè)等
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)