国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

掌握C語言的必知要點(diǎn)

發(fā)布時間:2016-2-26 14:29    發(fā)布者:designapp
關(guān)鍵詞: C語言 , 可維護(hù)性
  溫故而知新,可以為師矣,初學(xué)一門語言的時候,我們會躍躍欲試,并沒有真正深入的理解,經(jīng)過一段時間的實踐,會產(chǎn)生困惑,學(xué)而不思則殆,這時回過頭來看書,會有意想不到的收獲,會豁然開朗,會讓你在以后的實踐中更加運(yùn)用自如,下面再來看看一些C語言的知識要點(diǎn)及注意事項,一起來溫習(xí)一下。
  1、 Switch
  先來看一個簡單的實例
  Switch(cmd){
  Case 1:func1();break;
  Case 2:func2();
  Case 3:func3();break
  Default:func();break;
  }
  如果cmd==2,程序執(zhí)行switch后,會直接轉(zhuǎn)到case 2,執(zhí)行func2();之后會繼續(xù)進(jìn)入case 3,執(zhí)行func3();遇到break語句之后退出switch,因此如果你本意不想執(zhí)行func3();一定要在func2();后面加上break。加上default是一個好習(xí)慣,default可以放在任何一個位置,后面也要加上break,即使放在最后也要加,以免以后加代碼時忘記添加break導(dǎo)致意想不到的錯誤。
  2、 函數(shù)聲明
  Char *func(char *,char *);
  Char *func(char *dst,char *src);
  這兩個聲明都是正確的,但是第二個在原型中加上了參數(shù)的名字,更容易讓人看懂。
  3、 遞歸
  C語言通過運(yùn)行時堆棧支持遞歸函數(shù)的實現(xiàn),大體流程是這樣,遞歸函數(shù)會調(diào)用函數(shù)本身,每進(jìn)行一次調(diào)用,都將創(chuàng)建一批變量,而把前一次創(chuàng)建的變量壓棧,當(dāng)遞歸條件不滿足時,開始將變量按順序出棧,直到所有變量被彈出,要注意的是,除非你很有把握,而且確保使用遞歸函數(shù)可大大提高效率,否則不要輕易使用遞歸,這會使程序的可讀性變差,還可能造成意想不到的冗余。
  4、 數(shù)組
  數(shù)組是相同類型的一組值的集合,int b[4],b[4]內(nèi)部可存儲4個int型數(shù)據(jù),那么b的類型是什么?它表示的是整個數(shù)組嗎?在C中,數(shù)組名的值是一個指針常量,指向數(shù)組第一個元素,而這個指針常量的類型取決于數(shù)組元素的類型,注意這個值是指針常量,而不是指針變量,它的值不能修改,因為如果你修改了這個常量的值,相當(dāng)于將整個數(shù)組移動內(nèi)存的其它位置,而且在程序運(yùn)行時,移動數(shù)組的行為也是無效的。
  int a[4]; int *c; int b[4];
  C = &a[0];與c=a;執(zhí)行的任務(wù)是一樣的,就是把C指向數(shù)組的首個元素。
  而b=a;這是非法的,因為a與b均是指針常量,如果想把a(bǔ)的值全部賦給b,需要借助循環(huán)來實現(xiàn)。
  a=c;也是非法的,因為a的值也不應(yīng)該被修改。
  5、 Const
  只要有可能,函數(shù)的指針形參都應(yīng)該聲明為const,
  Void strcpy(char *buffer, char const *string);
  這個函數(shù)的目的是把string的內(nèi)容復(fù)制到buffer,形參string被聲明為一個指向const字符的指針,這樣做的好處有3個:
  (1) 讀者不必看函數(shù)體就知道該數(shù)據(jù)不會被修改
  (2) 編譯器可以捕獲任何試圖修改該數(shù)據(jù)的錯誤
  (3) 這類聲明允許向函數(shù)傳遞const參數(shù)
  6、 Static
  數(shù)組和變量的初始化方式取決于它們的存儲類型,存儲于靜態(tài)內(nèi)存的數(shù)組或變量只初始化一次,當(dāng)程序執(zhí)行時,靜態(tài)數(shù)組已經(jīng)初始化完畢,對于自動變量而言,由于自動變量位于運(yùn)行時堆棧中,執(zhí)行流每次進(jìn)入它們所在的代碼塊,變量所處的內(nèi)存位置可能不同,如果自動變量的聲明中給出了初始值,每次執(zhí)行流進(jìn)入變量所在的作用域,變量就被一條隱士的賦值語句初始化,如果是數(shù)組元素較多的情況,初始化時間也是比較可觀的。
  因此,當(dāng)數(shù)組初始化于一個函數(shù)中時,每次調(diào)用函數(shù),都會對數(shù)組初始化,但若把數(shù)組聲明為static,數(shù)組的初始化只需在程序開始前執(zhí)行一次。
  7、 效率與可維護(hù)性
  編寫代碼不可一味的追求效率,不要寫晦澀難懂的程序來彰顯自己的語言功底,這只會讓程序的可維護(hù)性變差,如果程序的改進(jìn)換來的效率并不可觀,就不要為了那幾十微秒的時間而給后續(xù)維護(hù)人員帶來困惑,它付出的代價是使得程序難于編寫在前,難與維護(hù)在后,而程序維護(hù)是軟件產(chǎn)品的主要成本所在,復(fù)雜的用法比簡單的用法所涉及的風(fēng)險要大得多。
                               
               
本文地址:http://m.qingdxww.cn/thread-161332-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點(diǎn)宏來節(jié)省時間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項目中的數(shù)據(jù)
  • Dev Tool Bits——使用MPLAB® Data Visualizer進(jìn)行功率監(jiān)視
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产九九精品视频 | 亚洲欧美综合日韩字幕v在线 | 手机看片在线精品观看 | 国产精品久久久免费视频 | 四虎国产精品永久在线看 | 国产精品日本一区二区在线播放 | 97免费在线观看视频 | 欧美视频中文字幕 | 精品久久伦理中文字幕 | 国产真实女人一级毛片 | 亚洲一区二区免费 | 国产一区二区精品尤物 | 成人性生交大片免费看中文 | 成人午夜网 | 欧美在线网址 | 一级特黄国产高清毛片97看片 | 亚洲成人毛片 | 热99这里只有精品 | 91成人在线播放 | 国产精品亚洲第五区在线 | 天天摸夜夜摸夜夜狠狠摸 | 日本不卡二 | 免费三级网站 | 精精国产xxxx视频在线播放器 | 国产精品影视 | 国产女明星专区视频在线播放 | 亚洲网站免费看 | 四虎日韩| 免费岛国小视频在线观看 | 高清一级毛片一本到免费观看 | 亚洲欧美第一页 | 96久久 | 天天插天天摸 | 特级毛片免费视频观看 | 羞羞视频在线 | 777黄色| 四虎麻豆 | 国产欧美日韩精品高清二区综合区 | 91无套极品外围在线播放 | 在线免费观看麻豆 | 久久99精品久久久久久秒播放器 |