當前位置:編程學習大全網 - 源碼下載 - c++和C有什麽區別

c++和C有什麽區別

C語言的歷史:

著名的計算機科學家丹尼斯·裏奇(Dennis Ritchie)創造的。1967年, Ritchie進入貝爾實驗室工作。貝爾實驗室是當時世界上最有創造力的地方之壹,著名的C語言、C++語言和Unix操作系統都誕生於此。壹開始, 裏奇和他的同事肯·湯普生開始研究DEC PDP-7機器,但是在這個機器上寫程序很困難,只能用很底層很高深的匯編語言。於是湯普生設計了壹種高級程序語言,並把它命名為B語言。但是由於B語言本身設計的缺陷,使他在內存的限制面前壹籌莫展。1973年,裏奇決定對B語言進行改良,他賦予了新語言強有力的系統控制方面的能力,並且新語言非常簡潔、高效,裏奇把它命名為C語言,意為B語言的下壹代。

在開發C語言的同時,裏奇和湯普生、布朗(貝爾實驗室的另壹名科學家)還接受了壹個新任務,就是在DEC PDP-7上開發壹個多任務、多用戶的操作系統,1969年,他們用匯編語言完成了這個操作系統的第壹個版本,裏奇受壹個更早的項目Multics的啟發,將這個系統命名為Unix。

為了在全世界面前展現C語言強大的能力,裏奇用C語言把Unix操作系統重寫了壹遍,這就是Unix第三版。而之前的第二版是用B語言開發的。1977年,為了推廣貝爾實驗室開發的Unix操作系統,裏奇發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》,使C語言再向前跨出壹大步,各種計算機都開始支持C語言。

1978年裏奇和布朗壹起出版了《C語言》壹書,從而使C語言成為世界上應用最廣泛的高級程序設計語言,而該書也成為計算機科學界最暢銷的書籍之壹。裏奇把全部精力都放到Unix、C語言、C++語言的應用和推廣上,曾在很多國家進行過教學和講座活動。2000年,他來到了中國,在北京大學和復旦大學進行了題為《貝爾實驗室與操作系統》的講演,為推動中國Unix/Linux的應用和發展貢獻了力量。

1983年,人們將計算機科學方面的最高榮譽——圖靈獎頒發給了裏奇,以表彰他對計算機科學所做出的傑出貢獻。

C語言的特色

C語言是高級程序語言,也就是說程序員不必知道具體的中央處理器型號也可以為計算機進行程序編制。它主要用來進行計算機的程序設計。C語言具有高效、靈活、功能豐富、表達力強和移植性好等的特點,在計算機語言中備受青睞。

在程序能夠運行前,源代碼必須有編譯器編譯成機器語言。相對於匯編語言只能針對具體型號的CPU才能運行,C語言的便捷性是很明顯的。

C語言的主要特性

C語言保留了低級語言的特性,例如涉及內存的指針。

C語言通過參數在函數裏傳遞數值。

使用了預處理機制,使得程序裏可以通過包含例如宏處理的方式來處理源程序。

C語言提供了壹套標準庫,這些庫裏提供了十分有用的功能。

但是並不是所有的這些特性都是有效的。例如,預處理通常作為壹個獨立的程序被處理,這使得與處理的程序並不壹定被完全編譯。

雖然C是高級語言,但是它同時擁有壹些匯編語言的特性,對其它的語言來說這是接近低級語言的特點。例如,在C語言裏,程序員可以對計算機內存進行管理。在默認的情況下,C語言不會對數組的範圍進行檢查,也就是說即使數組越界,C語言也不會作出錯誤提示。對計算機內存的管理使得程序員可以變出更快捷、更有效的程序,這對於設備驅動程序來說尤為重要。但是這也使得程序容易產生令人討厭的“臭蟲”,例如緩沖器溢出錯誤。然而,這些錯誤可以由壹些工具來避免。

C語言的不足可以由由C語言發展而來的更新的編程語言改進。Cyclone語言的擁有提防對於內存錯誤的特性。C++和Objective C提供了用於面向對象的編程結構。Java和C#增加了面向對象的結構使得對內存的管理自動化。

C語言的版本

K&R C

C不斷的從它的第壹版本進行改進。在1978年,Kernighan和裏奇的C編程語言第壹版出版。它介紹了下面的有關C語言版本的特性:

struct數據類型

long int數據類型

unsigned int數據類型

把運算符=+改為+=,依次類推。因為=+使得編譯器混淆。

在以後的幾年裏,C編程語言壹直被廣泛作為C語言事實上的規範。在這本書中,C語言通常被表述成"K&R C"。(第二版的包括了ANSI C標準)

K&R C通常被作為C編譯器所支持的最基本的C語言部分。雖然現在的編譯器並不壹定都完全遵循ANSI標準,但K&R C作為C語言的最底要求仍然要編程人員掌握。但是無論怎樣,現在使用廣泛的C語言版本都已經與K&R C相距甚遠了,因為這些編譯器都使用ANSI C標準。

ANSI C和ISO C

1989年,C語言被ANSI標準化。(ANSI X3.159-1989)。標準化的壹個目的是擴展K&R C。這個標準包括了壹些新的特性。在K&R出版後,壹些新的特征被“非官方”的加到C語言中。

void函數

函數返回struct或union類型

void *數據類型

在ANSI標準化自己的過程中,壹些新的特征被加了進去。ANSI也標準了函數庫。ANSI C標準被ISO(國際標準化組織)采納成為ISO 9899。ISO的第壹個版本文件在1990年出版。

C99

在ANSI標準化後,C語言的標準在壹段相當的時間內都保持不變,盡管C++繼續在改進。(實際上,Normative Amendment1在1995年已經開發了壹個新的C語言版本。但是這個版本很少為人所知。)標準在90年代才經歷了改進,這就是ISO9899:1999(1999年出版)。這個版本就是通常提及的C99。它被ANSI於2000年三月采用。

在C99中包括的特性有:

可變範圍的數組

新增加的數據類型,包括long long int,布爾類型和用於表示復數的類型

支持用//表示註釋(這個特性實際上在C89的很多編譯器上已經被支持了)

snprintf

但是各個公司對C99的支持所表現出來的興趣不同。當GCC和其它壹些商業編譯器支持C99的大部分特性的時候,微軟和Borland卻似乎對此不感興趣。

C++歷史:

語言的發展是壹個逐步遞進的過程,C++ 是直接從 C 語言發展過來的,而 C 語言是從 B 語言發展過來的,B 語言是 BCPL 的壹個解釋性後代,BCPL 是 Basic CPL。其中最有趣的是 CPL 中 C 的由來,由於當時這個語言是劍橋大學和倫敦大學合作開發的,在倫敦的人員加入之前,C 表示劍橋,倫敦人員加入之後,C 表示 Combined 組合。還有壹種非正式的說法,C 表示 Christopher,因為 Christopher 是 CPL 背後的主要動力。

最初導致C++誕生的原因是在Bjarne博士等人試圖去分析UNIX的內核的時候,這項工作開始於1979年4月,當時由於沒有合適的工具能夠有效的分析由於內核分布而造成的網絡流量,以及怎樣將內核模塊化。同年10月,Bjarne博士完成了壹個可以運行的預處理程序,稱之為Cpre,它為C加上了類似Simula的類機制。在這個過程中,Bjarne博士開始思考是不是要開發壹種新的語言,當時貝爾實驗室對這個想法很感興趣,就讓Bjarne博士等人組成壹個開發小組,專門進行研究。

當時不是叫做C++,而是C with class,這是把它當作壹種C語言的有效擴充。由於當時C語言在編程界居於老大的地位,要想發展壹種新的語言,最強大的競爭對手就是C語言,所以當時有兩個問題最受關註:C++要在運行時間、代碼緊湊性和數據緊湊性方面能夠與C語言相媲美,但是還要盡量避免在語言應用領域的限制。在這種情況下,壹個很自然的想法就是讓C++從C語言繼承過來,但是我們的Bjarne博士更具有先見之明,他為了避免受到C語言的局限性,參考了很多的語言,例如:從Simula繼承了類的概念,從Algol68繼承了運算符重載、引用以及在任何地方聲明變量的能力,從BCPL獲得了//註釋,從Ada得到了模板、名字空間,從Ada、Clu和ML取來了異常。

下面讓我們來壹起看壹下C++歷史上的主要事件:

1983年8月, 第壹個C++實現投入使用(所以我喜歡說1983年C++開了天界)

1983年12月,Rick Mascitti建議命名為CPlusPlus,即C++。

1985年2月, 第壹個C++ Release E發布。

10月,CFront的第壹個商業發布,CFront Release 1.0。

10月,Bjarne博士完成了經典巨著The C++ Programming Language第壹版

1986年11月,C++第壹個商業移植CFront 1.1,Glockenspiel。

1987年2月, CFront Release 1.2發布。

11月,第壹個USENIX C++會議在新墨西哥州舉行。

1988年10月,第壹次USENIX C++實現者工作會議在科羅拉多州舉行。

1989年12月,ANSI X3J16在華盛頓組織會議。

1990年3月, 第壹次ANSI X3J16技術會議在新澤西州召開.

5月, C++的又壹個傳世經典ARM誕生。

7月, 模板被加入。

11月,異常被加入。

1991年6月, The C++ Programming Language第二版完成。

6月, 第壹次ISO WG21會議在瑞典召開。

10月,CFront Release 3.0發布。

1993年3月, 運行時類型識別在俄勒岡州被加入。

7月, 名字空間在德國慕尼黑被加入。

1994年8月, ANSI/ISO委員會草案登記。

1997年7月, The C++ Programming Language第三版完成。

10月,ISO標準通過表決被接受

1998年11月,ISO標準被批準。

接下來讓我們壹起看壹下C++編譯器的“第壹個”:

1985年10月,Cfront Release 1.0發布。

1987年12月,GNU C++發布。

1988年1 月,第壹個Oregon Software C++發布。

6 月,第壹個Zortech C++發布。

1990年5 月,第壹個Borland C++發布。

1992年2 月,第壹個Dec C++發布。

3 月,第壹個Microsoft C++發布。

5 月,第壹個IBM C++發布。

百度百科有

C語言:/view/1219.htm

C++/view/824.htm

  • 上一篇:如何在弱市中抓住龍頭股
  • 下一篇:別跟莊鬥氣指標公式
  • copyright 2024編程學習大全網