C 語言

C 標準函式庫(概覽)

/ libc -> LIB-see /

你不會從礦石開始蓋房子——你用現成的磚、管、線。C 標準函式庫就是那批現成零件:一組由 C 標準本身定義、每個符合標準的 C 系統都會提供的函式與型別。你不必自己寫,就能取得輸入輸出、文字處理、數學、記憶體配置等等。

它組織成一些標頭檔,你引入所需的部分。幾個你會不斷遇到的:stdio.h 用於輸入與輸出,有印出格式化文字的 printf() 與讀取它的 scanf(),外加像 fopen() 與 fread() 的檔案函式。stdlib.h 用於一般工具——以 malloc() 與 free() 做記憶體配置、像 atoi() 的轉換、以及 exit()。string.h 用於以空字元結尾的字串操作:求長度的 strlen()、複製的 strcpy()、比較的 strcmp()。math.h 用於浮點數學如 sqrt()、sin()、pow()。函式庫函式看起來和任何其他函式一樣:你讀它有文件記載的原型,學它接受什麼引數、回傳什麼,然後呼叫它。

為什麼重要與一個澄清:標準函式庫是可攜、保證存在的工具組,所以堅守它的程式碼能在任何符合標準的系統上執行。值得把它與作業系統自己的介面區分開來:許多標準函式(printf、fopen、malloc)是薄薄的包裝,最終會向核心發出系統呼叫,但標準函式庫由語言標準定義、是可攜的,而原始系統呼叫與像 POSIX 的標頭檔則是平台專屬的。數學函式往往住在一個獨立的函式庫檔案中,你必須明確連結它(在許多系統上用 -lm)。

#include <stdio.h> #include <string.h> int main(void) { char name[] = "world"; printf("Hello, %s (%zu chars)\n", name, strlen(name)); return 0; }

兩個標準標頭檔免費給我們 printf(stdio.h)與 strlen(string.h)——不必自己實作格式化輸出或字串長度。

標準函式庫是可攜的、由語言定義;它與作業系統/POSIX 的系統呼叫介面不同,儘管像 printf 與 malloc 的函式最終會呼叫進核心。數學函式(math.h)往往需要明確連結,例如 gcc prog.c -lm。

又稱
libcstandard library標準函式庫標準程式庫