C语言编程方法技巧,C语言编程小技巧分享
在日常編程中,可能實(shí)現(xiàn)的功能都是一樣的,但是別人就是要寫的快,寫的好,而且同樣代碼執(zhí)行效率還高。究其原因,就是別人編寫的代碼多,掌握了更多的技巧性的東西,從而無論從編碼效率還是代碼的執(zhí)行效率上都更優(yōu)。現(xiàn)將日常編程中使用到的一些常規(guī)技巧進(jìn)行簡單總結(jié)。
1、從循環(huán)開始
1)while(--n>=0)與while(n-->0)
在大多數(shù)C語言實(shí)現(xiàn)中,--n >=0 至少與等效的n-- >0 一樣快,大多數(shù)情況下前者更快。
主要因?yàn)榈谝粋€(gè)表達(dá)式首先從n中減去1然后將結(jié)果與0比較;而第二個(gè)表達(dá)式首先保存n,從n中減去1之后比較保存值與0的大小,這中間多了一個(gè)保存的時(shí)間,從而前一個(gè)表達(dá)式更快。
注意:這樣的循環(huán)中,盡量不使用unsigned類型,否則前者會(huì)出現(xiàn)無限循環(huán)情況。
2)多重循環(huán)處理
對(duì)于多重循環(huán),如果可能,應(yīng)將最長的循環(huán)放在最內(nèi)層,最短的循環(huán)放在最外層,以減少CPU跨切循環(huán)層的次數(shù)。
3)for循環(huán)
對(duì)于for語句的循環(huán)控制變量的取值采用“半開半閉區(qū)間”寫法,用此方法更加直觀。
不能在for循環(huán)體內(nèi)修改循環(huán)變量,防止循環(huán)失控。
循環(huán)要盡可能的短,使代碼顯得清晰。若太長,看是否真的必須放入循環(huán)中,若必須,可以將這些代碼封裝成一個(gè)子函數(shù),循環(huán)中只需調(diào)用子函數(shù)即可。
同時(shí),把循環(huán)嵌套控制在3層以內(nèi)。
2、函數(shù)參數(shù)
在設(shè)計(jì)函數(shù)時(shí),通常將目的參數(shù)放在前面,源參數(shù)放在后面。若可能,通過IN、OUT這樣的宏定義來標(biāo)注參數(shù)輸入輸出。
如果參數(shù)是指針,且僅作輸入用,則應(yīng)在類型前加const,以防止該指針在函數(shù)體內(nèi)被意外修改。
3、函數(shù)中內(nèi)存處理
1)在函數(shù)中分配的內(nèi)存,在函數(shù)退出之前要釋放
2)return語句不可返回指向“棧內(nèi)存”的指針或者引用,因?yàn)樵搩?nèi)存在函數(shù)體結(jié)束時(shí)被自動(dòng)銷毀。
4、時(shí)間效率提升
1)調(diào)用if語句時(shí),優(yōu)先處理正常情況,再處理異常情況。
首先,可以使得正常情況的執(zhí)行代碼清晰,那些不常發(fā)生的異常情況不會(huì)遮掩了正常的執(zhí)行路徑。
其次,由于每進(jìn)行一次if語句必然會(huì)有比較過程存在,而正常情況應(yīng)該是發(fā)生的比較多的情況,那么可以減少在使用過程中比較的調(diào)用。設(shè)計(jì)時(shí)一定不要顛倒主次。
2)使用switch,case時(shí),也要注意case的順序,尤其是比較多種類的情況下,發(fā)生概率高的放在前面,低的放在后面,可以有效的減少不必要的比較過程。若沒有重要性區(qū)分,按照字母排列順序或數(shù)字大小排列也可。
總結(jié)
以上是生活随笔為你收集整理的C语言编程方法技巧,C语言编程小技巧分享的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: svn locked解决方法
- 下一篇: ios apple pay 证书配置