C 标准函式库
C 标准函式库 |
C 标准函式库在C语言程式设计里,C 标准函式库(C Standard library)收集所有目前符合标准的表头档(head file),以及常用的函式库实作程式,例如I/O 输入输出和字串控制。不像COBOL、Fortran和PL/I等程式语言,在 C 语言的工作任务里不会包含嵌入的关键字,所以几乎所有的 C 语言程式都是由标准函式库的函式来建立的。
基本信息
中文名 C 标准函式库 [1]
外文名 C standard library
基本简介
在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 Addendum1 (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个表头档:
参考来源