C 语言自出现至今,出现了好几个标准,不同的标准对 C 的编程会稍有影响。
另外,C 的编译器有很多种,使用方法各不相同。
·1972 贝尔实验室
Dennis Ritchie在B语言的基础上修改并发展成了C语言。
一直到 20 世纪 70 年代后期,C 语言都只是“传统的 C 语言”,没有一个统一的 标准,直到 1978 年 Kernighan 和 Ritchie 合著了《C Programming Language》一书, 人们才算有了一个事实上的标准,称为标准 C 或经典 C。
C89
C 语言在不同硬件平台上的发展,导致了很多看似相同实则不兼容的情况。为 了解决这些问题,美国国家标准委员会(ANSI)在 1983 年制订了一个新的 C 语言 标准,并在 1989 年得到批准。很长时间以来这个标准被称作 ANSI C,现在叫作 C89, 这也是目前大多 C 编译器都遵循的标准。
C99
C99 标准是 1999 年从 C89 标准修订而来的,主要做了如下改进:
(1)支持用“//”符号进行单行注释;
(2)变量定义可以在程序块的任何位置(不必在所有非定义语句的前面,甚至 可以出现在 for 语句的初始化从句中,如 for(int i =1; i<10 ; i++);
(3)支持只能拥有 0 或 1 值的布尔类型; (4)函数必须显式地声明返回类型(不允许采用缺省默认 int 的方式);
(5)支持可变长数组(程序运行时才确定数组的大小);
(6)在内存某区域对指针进行互斥的访问限制;
(7)支持内联函数;
(8)对返回类型不是 void 的函数必须用 return 返回一个值(表达式),返回类 型是 void 的函数 return 后面不能出现任何值(表达式);
(9)支持复数及运算;
(10)用 snprintf 函数打印内存中字符串时,可防止缓冲区溢出;
C99 目前尚未被广泛采用,完全支持 C99 的编译器不多。
网友评论