C標準函式館

C標準函式館

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

基本介紹

  • 中文名:C標準函式館
  • 類別:C語言
  • 庫類型頭檔案
  • 源自:C99
設計,設計質量,歷史沿革,

設計

每一個函式的名稱與特性會被寫成一個電腦檔案,這個檔案就稱為頭檔案,但是實際的函式實現是被分存到函式館檔案里。頭檔案的命名和領域是很常見的,但是函式館的組織架構也會因為不同的編譯器而有所不同。標準函式館通常會隨附在編譯器上。因為 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個頭檔案:
名字
源自
描述
<assert.h>

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

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

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

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

Defines macro constants specifying the implementation-specific properties of theinteger types.
<locale.h>

定義C語言本地化函式.
<math.h>

定義C語言數學函式。
<setjmp.h>

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

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

For accessing a varying number of arguments passed to functions.
<stdatomic.h>
C11
For atomic operations on data shared between threads.
<stdbool.h>
C99
Defines a boolean data type.
<stddef.h>

Defines several useful types and macros.
<stdint.h>
C99
Defines exact width integer types.
<stdio.h>

Defines core input and output functions
<stdlib.h>

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

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

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

相關詞條

熱門詞條

聯絡我們