1.2.2 C语言 - Dennis Ritchie, 1974 ~ 1989
C语言是由Dennis Ritchie在B语言的基础上改进而来,它增加了丰富的数据类型,并最终实现了用它重写UNIX的伟大目标。C语言可以说是现代IT行业最重要的软件基石,目前主流的操作系统几乎全部是由C语言开发的,许多基础系统软件也是C语言开发的。C系家族的编程语言占据统治地位达几十年之久,半个多世纪以来依然充满活力。
在Brian W. Kernighan于1974年左右编写的C语言入门教程中,出现了第一个C语言版本的“Hello World”程序。这给后来大部分编程语言教程都以“Hello World”为第一个程序提供了惯例。第一个C语言版本的“Hello World”程序如下:
main()
{
printf("hello, world");
}
关于这个程序,有几点需要说明的:首先是main
函数因为没有明确返回值类型,默认返回int
类型;其次printf
函数默认不需要导入函数声明即可以使用;最后main
没有明确返回语句,但默认返回0值。在这个程序出现时,C语言还远未标准化,我们看到的是上古时代的C语言语法:函数不用写返回值,函数参数也可以忽略,使用printf时不需要包含头文件等。
这个例子同样出现在了1978年出版的《C程序设计语言》第一版中,作者正是Brian W. Kernighan 和 Dennis M. Ritchie(简称K&R)。书中的“Hello World”末尾增加了一个换行输出:
main()
{
printf("hello, world\n");
}
这个例子在字符串末尾增加了一个换行,C语言的\n
换行比B语言的'!*n'
换行看起来要简洁了一些。
在K&R的教程面世10年之后的1988年,《C程序设计语言》第二版终于出版了。此时ANSI C语言的标准化草案已经初步完成,但正式版本的文档尚未发布。不过书中的“Hello World”程序根据新的规范增加了#include <stdio.h>
头文件包含语句,用于包含printf
函数的声明(新的C89标准中,仅仅是针对printf
函数而言,依然可以不用声明函数而直接使用)。
#include <stdio.h>
main()
{
printf("hello, world\n");
}
然后到了1989年,ANSI C语言第一个国际标准发布,一般被称为C89。C89是流行最广泛的一个C语言标准,目前依然被大量使用。《C程序设计语言》第二版的也再次印刷新版本,并针对新发布的C89规范建议,给main
函数的参数增加了void
输入参数说明,表示没有输入参数的意思。
#include <stdio.h>
main(void)
{
printf("hello, world\n");
}
至此,C语言本身的进化基本完成。后面的C92/C99/C11都只是针对一些语言细节做了完善。因为各种历史因素,C89依然是使用最广泛的标准。
学员评价