C標準函式館

C標準函式館

C標準函式館(C Standard library)是所有符合標準的頭檔案(head file)的集合,以及常用的函式館實現程式,例如I/O 輸入輸出和字元串控制。不像 COBOL、Fortran 和 PL/I等程式語言,在 C 語言的工作任務里不會包含嵌入的關鍵字,所以幾乎所有的 C 語言程式都是由標準函式館的函式來創建的。

設計

每一個函式的名稱與特性會被寫成一個電腦檔案,這個檔案就稱為頭檔案,但是實際的函式實現是被分存到函式館檔案里。頭檔案的命名和領域是很常見的,但是函式館的組織架構也會因為不同的編譯器而有所不同。標準函式館通常會隨附在編譯器上。因為 C 編譯器常會提供一些額外的非 ANSI C 函式功能,所以某個隨附在特定編譯器上的標準函式館,對其他不同的編譯器來說,是不兼容的。

設計質量

大多 C 標準函式館在設計上做得相當不錯。有些少部分的,會為了商業優勢和利益,會把某些舊函式視同錯誤或提出警告。字元串輸入函式 gets()(以及 scanf() 讀取字元串輸入的使用上)是很多快取溢出的原因,而且大多的程式設計指南會建議避免使用它。另一個較為奇特的函式是 strtok(),它原本是作為早期的辭彙分析用途,但是它非常容易出錯(fragile),而且很難使用。

歷史沿革

1995年, Normative Addendum 1 (NA1)批准了三個頭檔案(iso646.h, wchar.h, and wctype.h)增加到C標準函式館中。C99標準增加了六個頭檔案(complex.h, fenv.h, inttypes.h, stdbool.h, stdint.h, and tgmath.h)。C11標準中又新增了5個頭檔案(stdalign.h, stdatomic.h, stdnoreturn.h, threads.h, and uchar.h)。至此,C標準函式館共29個頭檔案   :

名字源自描述

包含斷言宏,被用來在程式的調試版本中幫助檢測邏輯錯誤以及其他類型的bug。
C99 一組操作複數的函式。

定義了一組函式,用來根據類型來給字元分類,或者進行大小寫轉換,而不關心所使用的字元集(通常是ASCII或其擴展字元集,也有EBCDIC)。

用來測試由庫函式報的錯誤代碼。
C99 定義了一組用來控制浮點數環境的函式。

Defines macro constants specifying the implementation-specific properties of the 浮點數 library.
C99 Defines exact width integer types.
NA1 Defines several macros that are equivalent to some of the operators in C. For programming in ISO 646 variant character sets.

Defines macro constants specifying the implementation-specific properties of theinteger types.

定義C語言本地化函式.

定義C語言數學函式。

定義了宏setjmp和longjmp,在非局部跳轉的時候使用。

定義C語言信號處理函式。
C11 For querying and specifying the data structure alignment of objects.

For accessing a varying number of arguments passed to functions.
C11 For atomic operations on data shared between threads.
C99 Defines a boolean data type.

Defines several useful types and macros.
C99 Defines exact width integer types.

Defines core input and output functions

Defines numeric conversion functions, pseudo-random numbers generation functions, dynamicmemory allocation, process control functions
C11 For specifying non-returning functions.

定義C語言字元串處理函式
C99 Defines type-generic mathematical functions.
C11 Defines functions for managing multiple threads as well as mutexes and condition variables.

Defines date and time handling functions
C11 Types and functions for manipulating Unicode characters.
NA1 Defines wide string handling functions.
NA1 Defines set of functions used to classify wide characters by their types or to convert between upper and lower case

相關詞條

熱門詞條

聯絡我們