前言
本文為《學會 C 語言》一書的學習筆記。
認識 C 語言
- C 語言是一種「通用目的」(General-purpose)程式語言、結構化程式語言,以及程序式程式語言。
- C 語言最早的標準是 K&R C,1989 年 ANSI 制定標準 C 語言後,稱為 ANSI-C,1999 年參考 C++ 語法作了少許更新,稱為 C99。
- C 語言是由 Dennis Ritchie 在 1972 年於貝爾實驗室設計的程式語言。
- C 語言的特性來自其前輩 B 語言,B 語言是一種源於 Martin Richards 設計的程式語言。
- 開發 C 語言的主要目的是為了設計 UNIX 作業系統。
- 1980 年代晚期,Bjarne Stroustrup 等人替 C 語言新增物件導向的功能,稱為 C++。
整合開發環境
使用 IDE(Integrated Drive Electronics)整合開發環境,可以協助開發者編輯、編譯和執行 C 程式。
開發 C 語言的步驟如下:
- 編輯程式碼(Editing),C 語言的程式檔案是標準 ANSI 文字檔案,可以使用任何文字編輯工具輸入程式碼,如記事本。C 語言程式碼檔案的副檔名預設為「
.c
」。 - 編譯程式碼(Compiling),需要使用編譯器將原始程式碼檔案轉譯成指定的 CPU 機器語言的目標檔(Object Files),其副檔名為「
.obj
」或「.o
」。 - 連結函數庫(Linking),函數庫是由編譯器開發廠商提供或使用者自行撰寫的模組。此步驟將函數庫和模組的目標檔連結到程式,以建立像是「
.exe
」的執行檔。 - 執行程式(Executing),在建立 C 程式的執行檔之後,就可以執行 C 程式。
程式設計的步驟
- 制定需求(Requirements):了解問題本身,以便確切獲得需要輸入的資料和預期產生的結果。
- 設計(Design):找尋解決問題的方法和策略,將詳細的執行步驟和順序擬定下來。
- 分析(Analysis):在眾多的解決方法中選擇一種最好的演算法來撰寫程式。
- 撰寫程式碼(Coding):每次撰寫程式碼,先使用眾多解決方法中的其中一種方法就好。
- 驗證(Verification):確保程式執行的結果符合預期的結果,包括:證明、測試和除錯。
C 程式的基本結構
C 程式的基本結構如下:
1 | 含括標頭檔 |
main()
函數是必備的元素。
含括標頭檔
C 語言本身只提供簡單的語法,其功能主要是由 C 語言標準函數庫提供,標頭檔是函數庫的函數原型宣告。
如果在 C 程式有使用到函數庫的函數,就需要含括指定標頭檔,其副檔名為「.h
」。
1 |
主程式
主程式 main()
函數是 C 程式的主程式,即 C 程式執行時的進入點。
1 | int main() |
- 傳回的資料型態是
int
。 return
指令可以回傳main()
主程式的傳回值,其資料型態通常是main()
主程式前指定的資料型態。
標準函數庫的函數
C 語言的標準函數庫是 C 語言編譯器的內建模組,例如:數學函數、字串處理、輸出/輸入以及檔案處理等。
在 C 程式可以直接使用標準函數庫的函數來完成所需工作,像是使用 printf()
函數,將文字內容輸出到螢幕上顯示。
1 | printf("第一個 C 程式\n"); |
C 語言的寫作風格
C 語言的寫作風格是撰寫 C 語言程式碼的規則。
程式敘述
C 程式是由程式敘述(Statements)組成,一行程式敘述包含多個運算式、運算子或關鍵字。
1 | int b = 10; |
結束符號
C 語言的「;
」符號表示程式敘述的結束,每一個程式敘述後一定有「;
」符號。
1 | int b = 10; |
程式區塊
程式區塊(Blocks)是由多個程式敘述組成,使用大括號「{
」和「}
」包圍。
1 | int main() |
程式註解
程式註解(Comments)是程式中十分重要的部分,可以提供程式內容的進一步說明,並在維護上提供更多資訊。
程式註解使用「/*
」和「*/
」包圍起來。
1 | /* 程式範例 */ |
區塊註解可以跨過多行。
1 | /* ---------- |
C99 可以使用「//
」做單行註解。
1 | // 顯示訊息 |
過長程式碼
C 語言是自由格式編排的語言,若程式碼需要分成兩行,直接分割即可。
1 | result = maxValue( var1, var2, var3, |
如果程式碼當中不可有新行字元「\n
」,可以在程式碼的最後加上「\
」符號。
1 | sum = grades[0] + grades[1] + \ |
程式碼縮排
加上適當的縮排,可以讓程式碼閱讀起來更容易,並且反應出程式碼的邏輯和迴圈架構。
1 | for (i = 0; i <= 10; i++) { |
參考資料
- 陳會安(2016)。學會 C 語言。台北市:旗標。