書名: Go語言高級編程(第2版)作者名: 柴樹杉 曹春暉本章字?jǐn)?shù): 853字更新時間: 2025-08-07 17:56:10
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)。
- Designing Machine Learning Systems with Python
- The Supervised Learning Workshop
- 案例式C語言程序設(shè)計
- Python網(wǎng)絡(luò)爬蟲從入門到實踐(第2版)
- HTML5+CSS3+JavaScript Web開發(fā)案例教程(在線實訓(xùn)版)
- Python Data Analysis(Second Edition)
- MongoDB權(quán)威指南(第3版)
- Mastering Drupal 8 Views
- 可解釋機(jī)器學(xué)習(xí):模型、方法與實踐
- Scientific Computing with Scala
- C語言程序設(shè)計上機(jī)指導(dǎo)與習(xí)題解答(第2版)
- 零基礎(chǔ)Java學(xué)習(xí)筆記
- Mastering PowerCLI
- 軟件測試(慕課版)
- 量子計算機(jī)編程:從入門到實踐