szt1993 发表于 2025-3-24 21:54

ANSI C 与 K&R C

C语言由Dennis M. Ritchie在1973年设计和实现。从那以后使用者逐渐增加。到1978年Ritchie和Bell实验室的另一位程序专家Kernighan合写了著名的《The C Programming Language》,将C语言推向全世界,许多国家都出了译本,国内有一些C语言书就是这本书的翻译或者编译。由这本书定义的C语言后来被人们称作 K&R C。

随着C语言使用得越来越广泛,出现了许多新问题,人们日益强烈地要求对C语言进行标准化。这个标准化的工作在美国国家标准局(ANSI)的框架中进行(1983-1988),最终结果是1988年10月颁布的ANSI标准X3.159-1989,也就是后来人们所说的ANSI C标准。由这个标准定义的C语言被称作ANSI C。

ANSI C标准很快被采纳为国际标准和各国的标准。国际标准为ISO/IEC 9899-1990,中国国家标准GB/T 15272-94是国际ISO标准的中文翻译。

ANSI C标准化工作的一个主要目标是清除原来C语言中的不安全、不合理、不精确、不完善的东西。由此也产生了ANSI C与K&R C之间的差异。从总体上看,这些差异反应的是C语言走向完善、走向成熟。

tpgf 发表于 2025-4-9 15:53

K&R C:关键字相对较少,没有“void”、“const”、“volatile”、“signed”、“enum”等关键字

AdaMaYun 发表于 2025-4-12 21:54

ANSI C标准化工作的一个主要目标是清除原来C语言中的不安全、不合理、不精确、不完善的东西。

xiaoqizi 发表于 2025-4-13 20:45

ANSI C:在K&R C的基础上增加了多个关键字,如“void”、“const”、“volatile”、“signed”、“enum”等,同时抛弃了老关键字“entry”

木木guainv 发表于 2025-4-14 08:04

K&R C数据类型相对简单,没有明确区分有符号字符和无符号字符,也没有整数的后缀表示方法

Jiangxiaopi 发表于 2025-4-14 11:07

ANSI C明确了字符的带符号和不带符号属性,引入了整数的后缀字符、浮点数的后缀字符,并且丢弃了“long float”

荣陶陶 发表于 2025-4-14 14:08

ANSI C规定连续出现的字符串常量将被拼接在一起,方便了字符串的处理和操作

Zhiniaocun 发表于 2025-4-14 17:12

ANSI C引进了包含参数类型的函数原型概念,要求函数在使用前必须进行原型声明,以便编译器进行类型检查和优化,提高了代码的可读性和可靠性
页: [1]
查看完整版本: ANSI C 与 K&R C