官术网_书友最值得收藏!

1.2.2 C語言——Dennis Ritchie,1972—1989

C語言是由Dennis Ritchie在B語言的基礎(chǔ)上改進(jìn)而來,它增加了豐富的數(shù)據(jù)類型,并最終實現(xiàn)了用它重寫UNIX的偉大目標(biāo)。C語言可以說是現(xiàn)代IT行業(yè)最重要的軟件基石,目前主流的操作系統(tǒng)幾乎全部是用C語言開發(fā)的,許多基礎(chǔ)系統(tǒng)軟件也是用C語言開發(fā)的。C系家族的編程語言占據(jù)程序設(shè)計語言統(tǒng)治地位達(dá)幾十年之久,半個多世紀(jì)以來依然充滿活?力。

在Brian W. Kernighan于1974年左右編寫的C語言入門教程中,出現(xiàn)了第一個C語言版本的“Hello, World”程序。自此,后來的大部分編程語言教程都以“Hello, World”為第一個程序示例。第一個C語言版本的“Hello, World”程序如下:

main()
{
    printf("hello, world");
}

關(guān)于這個程序,有幾點需要說明:首先,main()函數(shù)沒有明確返回值類型,因此默認(rèn)返回int類型;其次,printf()函數(shù)默認(rèn)不需要導(dǎo)入函數(shù)聲明即可以使用;最后,main()沒有明確返回語句,但默認(rèn)返回0。在這個程序出現(xiàn)時,C語言還未被標(biāo)準(zhǔn)化,我們看到的是早先的C語言語法:函數(shù)不用寫返回值,函數(shù)參數(shù)也可以忽略,使用printf()時不需要包含頭文件?等。

這個例子同樣出現(xiàn)在了1978年出版的《C程序設(shè)計語言》(The C Programming Language,簡稱K&R)中,作者正是Brian W. Kernighan和Dennis M. Ritchie。書中的“Hello, World”程序末尾增加了一個換行符:

main()
{
    printf("hello, world\n");
}

這個例子在字符串末尾增加了一個換行符,C語言的換行符\n比B語言的換行符'!*n'看起來簡潔了一?些。

在《C程序設(shè)計語言》面世10年之后的1988年,此書的第2版終于出版了。此時ANSI C語言的標(biāo)準(zhǔn)化草案已經(jīng)初步完成,但正式版本的文檔尚未發(fā)布。《C程序設(shè)計語言(第2版)》中的“Hello, World”程序根據(jù)新規(guī)范增加了頭文件包含語句#include <stdio.h>,用于包含printf()函數(shù)的聲明(在C89標(biāo)準(zhǔn)中,對printf()函數(shù)依然可以不用聲明函數(shù)而直接使用)。

#include <stdio.h>
main()
{
    printf("hello, world\n");
}

1989年,ANSI通過了C語言的第一個官方標(biāo)準(zhǔn),一般稱為C89。C89是流行最廣泛的一版C語言標(biāo)準(zhǔn),目前依然被大量使用。《C程序設(shè)計語言》也針對新發(fā)布的C89規(guī)范出版了新版,給main()函數(shù)的參數(shù)增加了void輸入?yún)?shù)說明,表示沒有輸入?yún)?shù)的意?思。

#include <stdio.h>
main(void)
{
    printf("hello, world\n");
}

至此,C語言本身的進(jìn)化基本完成。后面的C92/C99/C11都只是針對一些語言細(xì)節(jié)做了完善。因為各種歷史因素,C89依然是當(dāng)前使用最廣泛的C語言標(biāo)?準(zhǔn)。

主站蜘蛛池模板: 都匀市| 抚宁县| 盐津县| 宁波市| 湘阴县| 句容市| 革吉县| 台东市| 上饶市| 衡水市| 海阳市| 若尔盖县| 宝坻区| 吉水县| 信阳市| 信丰县| 夏津县| 曲周县| 西林县| 日照市| 林周县| 贡山| 浦县| 襄樊市| 连江县| 楚雄市| 广丰县| 布拖县| 云和县| 湄潭县| 汽车| 香格里拉县| 呈贡县| 鸡泽县| 怀宁县| 彝良县| 北京市| 鄂托克旗| 保靖县| 遂溪县| 房产|