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标准规范中的一部分哦 |
GUN C library,包括一些系统system call api以及一些功能函数,是现在linux系统上最流行的c library。在linux系统上对应的so库文件为/lib/libc.so.6(可能有些linux并不是这个)。glibc相当于是ANSI C library的扩展。 |
|
msvcrt |
微软的libc实现 |