C 程式由函數組成,main 為入口點。本文從四大分類維度系統梳理函數類型,並列出標準庫 13 大功能類別,建立完整知識地圖。
| 維度 | 類別 | 說明 |
|---|---|---|
| 定義來源 | 庫函數 | 系統提供,含標頭檔即可呼叫(printf、strlen) |
| 使用者定義函數 | 自行實作,需定義、宣告、呼叫三步驟 | |
| 返回值 | 有返回值 | 執行後回傳結果(int max(...)),需指定型別 |
| 無返回值 | 僅執行動作(void print(...)),型別為 void | |
| 參數 | 無參函數 | 定義/呼叫無參數(void init(void)) |
| 有參函數 | 具形參/實參傳遞(int add(int a, int b)) | |
| 巢狀關係 | 平行定義 | **不允許函數內定義函數**,所有函數平行 |
| 遞歸呼叫 | 函數可呼叫自身 |
isalpha、isdigit、isspace...(<ctype.h>)atoi、atof、toupper、tolower...(<stdlib.h>/<ctype.h>)chdir、getcwd、mkdir...(平台相關)assert、errno...(<assert.h>、<errno.h>)line、circle...(BGI、平台相關,現代少用)printf、scanf、fopen、fread...(<stdio.h>)int86、inp/outp,舊式)strcpy、strcat、strcmp、strlen...(<string.h>)malloc、free、realloc、calloc...(<stdlib.h>)sin、cos、sqrt、pow...(<math.h>)time、localtime、strftime...(<time.h>)system、exec、fork...(<process.h>/POSIX)qsort、bsearch、setjmp/longjmp...(<stdlib.h>/<setjmp.h>)main** 函數。main 可呼叫其他函數,**不可被其他函數呼叫**。main 開始 → 呼叫其他函數 → 返回 main → 結束。stdio.h、string.h、stdlib.h、math.h 核心函數。