- 第一行代碼 C語言(視頻講解版)
- 翁惠玉
- 1632字
- 2019-09-10 14:45:37
2.3 編程規范及常見問題
2.3.1 注意注釋
程序中的注釋與程序功能完全無關,因此很多程序員都不愿意在程序中加注釋,覺得是浪費時間和精力。但對現在的程序設計而言,注釋是相當重要的。有的軟件規模較大,而且可能會用很多年,在軟件被應用的過程中,可能會發現開發時遺留的一些 bug,或者用戶對軟件的功能有新的要求,需要修改程序。
無論是修改bug還是修改功能,都需要修改程序。要修改程序必須先讀懂程序,而讀程序本身比較困難。為了使修改者更容易理解程序,可以采用人與人之間交換信息的語言對程序進行注釋。當程序在將來的某一天需要修改時,程序員可以通過這些注釋而不是程序本身來了解程序是如何工作的。這將給程序的維護提供了相當大的便利。
注釋可以出現在程序開始部分,也可以出現在程序中間。程序開頭的注釋是對程序整體的介紹。一般包括源文件的名稱、程序的功能、作者、創建日期、修改者、修改日期、修改內容等。程序注釋可以描述程序中特別復雜的部分的實現方法和過程,給出如何改變程序行為的一些建議等。程序中間的注釋可以解釋程序中某些變量的意義或特別復雜的程序段。
2.3.2 良好的排版習慣
寫程序就如寫一篇文章。寫文章時,不僅內容要有吸引力、結構要合理、文筆要優美,排版也很重要。一篇好文章如果沒有分段、縮進,全擠在一起,想必讀者是沒有興趣閱讀的。程序也是如此,程序不僅要正確完成預定功能,效率要高,還需要有優美的排版。如代碼清單2-1中,函數體中的語句都比函數頭縮進若干個空格,使讀者一看就明白哪些語句是屬于這個函數的。函數中的語句按功能分成若干部分,每個部分之間用空格分開,這樣使讀者更容易理解函數的功能。
2.3.3 為什么要學C語言
C語言是20世紀70年代出現的一種程序設計語言。此后又出現了很多應用廣泛的程序設計語言,如 Python、Java 等。為什么本書選擇一個這么“古老”的語言?在技術飛速發展的今天,學習C語言還有意義嗎?
在所有的程序設計語言中,C 語言有它獨特的地位。如果讀者學過一些其他的程序設計語言,會發現它們與 C 語言非常類似。C 語言非常簡潔靈活,這些語言都采納了 C 語言的優點。掌握了C語言后,再學這些語言就非常容易。
作為高級語言,C 語言支持結構化程序設計。同時 C 語言又具有低級語言的功能,非常適合開發系統軟件。很多操作系統、編譯器都是用 C語言開發的。UNIX系統、手機上的安卓等系統的底層代碼都是用 C 語言開發的。蘋果的 iOS 系統及上面的軟件是用 C 語言的一個變種語言Objective-C開發的。
所以說,C語言不僅是軟件開發的基石,而且有強大的生命力。
2.3.4 如何學習程序設計
寫程序就如寫一篇文章。俗話說,熟讀唐詩300首,不會寫詩也會湊。學習程序設計也是如此。
首先,要多讀別人寫過的代碼。注意別人代碼中解決問題的算法和數據結構,從而拓展自己解決問題的思路,起到舉一反三的作用。同時,也要關注別人程序設計的風格。如變量命名、函數的劃分及庫函數的用法等。
其次,要多練。學習程序設計不能只說不練,一定要經常編寫程序。很多細節問題只有在編寫程序的過程中才會發現,特別是 debug的過程,即使是簡單的語法錯誤,編譯器已經告訴大家錯在哪一行、是什么錯誤,但開始時可能還是完全搞不懂錯在哪里、怎么修改。這些經驗需要不斷積累,而且多練也有助于提高興趣。當成功地編寫出了一個程序,我們就會很有成感。
2.3.5 什么是庫
庫是一些常用工具的集合,這些工具是由其他程序員編寫的,能夠完成特定的功能。當程序員在編程時需要用到這些功能時,不需要再自己編程解決這些問題,只需要調用庫中的工具。這樣可以減少重復編程。例如,輸入/輸出是每個程序都要用到的功能,C 語言設計了一個庫 stdio。程序員編程時需要輸入/輸出信息時,可以調用其中的函數,而不再需要自己編程實現輸入/輸出。同理,很多程序都要用到一些數學函數,C 語言提供了一個 math 庫。當程序需要用到指數函數、對數函數、三角函數時,不需要研究如何計算這些函數值,而只需要調用math庫中的函數。
除了系統的庫以外,程序員也可以把自己常用的一些功能設計成一個庫。本書將在第12章介紹如何設計和實現自己的庫。
- Getting Started with React
- 嵌入式軟件系統測試:基于形式化方法的自動化測試解決方案
- JavaScript高效圖形編程
- Java程序員面試算法寶典
- Internet of Things with Intel Galileo
- FFmpeg入門詳解:音視頻原理及應用
- SharePoint Development with the SharePoint Framework
- Swift 4 Protocol-Oriented Programming(Third Edition)
- Python從入門到精通
- HTML+CSS+JavaScript網頁設計從入門到精通 (清華社"視頻大講堂"大系·網絡開發視頻大講堂)
- Visual C++程序設計與項目實踐
- Java面試一戰到底(基礎卷)
- 新手學ASP.NET 3.5網絡開發
- Web前端開發實戰教程(HTML5+CSS3+JavaScript)(微課版)
- Apple Watch極速開發