關于北京網站建設之C程序建設的相關知識分形科技已為在家介紹了很多了,不過相信那些想要深入學習的程序員們還是覺得不夠,依然迫切的需求用戶專業的知識來豐富自己的工作技能。為了幫助大家可以更加深入的了解C程序建設,分形科技繼續為大家介紹一些關于這方面的知識。
當程序員在為英文網站建設、眾籌網站平臺建設、企業營銷型網站建設等不同類型的網站建設和開發程序時,如果遇到了關于C程序建設方面的問題可以隨時咨詢分形科技的在線客服,我們將隨時為您提供服務。下面分形科技要為在家介紹的是使用自加、自減指令和減少運算的強度兩方面的內容。

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