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

掌握C語言的必知要點

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

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

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 污污成人一区二区三区四区 | 欧美高清视频在线观看 | 九九热热九九 | 欧美区在线 | 亚洲精彩视频在线观看 | 免费观看男女羞羞的视频网站 | 国产11一12周岁女毛片 | 国产在线麻豆精品观看 | 97国产品香蕉在线观看 | 国产精品边做边接电话在线观看 | 青青久久精品 | 国产老色批视频在线观看应用 | 精品色视频 | 免费羞羞网站视频 | 婷婷在线网站 | 影院亚洲 | 黄a毛片| 91亚洲国产成人久久精品网址 | 上海一级片 | 九九热视频在线播放 | 亚洲性xx | 日本视频免费观看 | 99re视频精品全部免费 | 四虎综合网 | 夜夜操天天插 | 久久亚洲精品成人 | 欧美日韩大尺码免费专区 | 99在线观看视频免费 | 国产香港一级毛片在线看 | 国产精品国产三级国产专业不 | 欧美色图综合 | 国产三级国产精品国产普男人 | 国产精品福利在线观看免费不卡 | 99热这里只有精品18 | 国产一级做a爰片在线 | 91精品视品在线播放 | 久在线视频 | 男人天堂啪啪 | 日本高清在线视频www色下载 | 在线观看一区二区精品视频 | 91视频最新网址 |