热门问题
时间线
聊天
视角
C標準函式庫
来自维基百科,自由的百科全书
Remove ads
C 標準函式庫(C standard library,縮寫:libc)是在C語言程式設計中,所有符合標準的標頭檔(header file)的集合,以及常用的函式庫實作程式(如 I/O 輸入輸出和字串控制)。不像 COBOL、Fortran 和 PL/I等程式語言,在 C 語言的工作任務裏不會包含嵌入的關鍵字,所以幾乎所有的 C 語言程式都是由標準函式庫的函數來建立的。
設計
每一個函數的名稱與特性會被寫成一個電腦檔案,這個檔案就稱為標頭檔案,但是實際的函數實作是被分存到函式庫檔案裏。標頭檔的命名和領域是很常見的,但是函式庫的組織架構也會因為不同的編譯器而有所不同。標準函式庫通常會隨附在編譯器上。因為 C 編譯器常會提供一些額外的非 ANSI C 函數功能,所以某個隨附在特定編譯器上的標準函式庫,對其他不同的編譯器來說,是不相容的。
大多數 C 標準函式庫設計得很好。有些少部分會為了商業優勢和利益,把某些舊函數視同錯誤或提出警告。字串輸入函數 gets()
及 scanf()
讀取字串輸入的使用是很多緩衝區溢位的原因,大多數的程式設計指南會建議避免使用。另一個較為奇特的函數是 strtok()
,它原本是作為早期的詞法分析用途,但是它非常容易出錯(fragile),而且很難使用。
歷史沿革
ANSI C共包括15個標頭檔。1995年,Normative Addendum 1 (NA1)批准了3個標頭檔(iso646.h
、wchar.h
和wctype.h
)增加到C標準函式庫中。C99標準增加了6個標頭檔(complex.h
、fenv.h
、inttypes.h
、stdbool.h
、stdint.h
和tgmath.h
)。C11標準中又新增了5個標頭檔(stdalign.h
、stdatomic.h
、stdnoreturn.h
、threads.h
和uchar.h
)。至此,C標準函式庫共有29個標頭檔:
參考文獻
外部連結
- The C Standard Library:A detailed description of the header files
- The C Library Reference Guide
- Microsoft C Run-Time Libraries(頁面存檔備份,存於互聯網檔案館) on MSDN
- Coding Programmer Page(頁面存檔備份,存於互聯網檔案館) [Coding Programmer Page / Library Reference and Examples] (english) ]
參見
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads