现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

C语言标准发展历史以及各种libc实现

2019-11-09 08:33 工业·编程 ⁄ 共 909字 ⁄ 字号 暂无评论

1.C语言的标准发展历史

C语言的标准经历过C89、C90、C99以及C11几个版本的发展

(1)C89

1983年,美国国家标准协会ANSI组成了一个委员会,X3J11,为了创立C的一套标准。经过漫长而艰苦的过程,该标准于1989年完成,并在作为ANSIX3.159-1989 "Programming Language C"正式生效。这个版本的语言经常被称作"ANSIC",或有时称为"C89"。

(2)C90

在1990年,ANSI C标准(带有一些小改动)被美国国家标准协会采纳为ISO/IEC9899:1990。这个版本有时候称为C90。因此,C89和C90通常指同一种语言。

(3)C99

在2000年三月,ANSI采纳了ISO/IEC 9899:1999标准。这个标准通常指C99。

(4)C11

在2011年12月,ANSI采纳了ISO/IEC 9899:2011标准。这个标准通常即C11,它是C程序语言的现行标准。

2.C语言的c library的实现

C语言中libc实际上是一个泛指。凡是符合实现了C标准规定的内容,都是一种libc。具体有如下这个libc实现:

libc库实现

备注

ANSI C library

C语言的标准库,包括

<asset.h>,<ctype.h>,<errno.h>,<float.h>,<limits.h>,<locale.h>,<math.h>,<setjmp.h> ,<signal.h>,<stdarg.h>,<stddef.h>,<stdlib.h>,<stdio.h>,<string.h>,<time.h>

<ctype.h>等等。ANSI C library是ANSI C标准规范中的一部分哦

glibc

GUN C library,包括一些系统system call api以及一些功能函数,是现在linux系统上最流行的c library。在linux系统上对应的so库文件为/lib/libc.so.6(可能有些linux并不是这个)。glibc相当于是ANSI C library的扩展

uClibc

FreeBSD libc

NetBSD libc

OpenBSD

dietlibc

musl libc

msvcrt

微软的libc实现

给我留言

留言无头像?