c的產生源於乙個失敗的專案,由通用電氣公司、麻省理工學院與貝爾實驗室聯合創立的乙個龐大的專案——multics工程。雖然開發小組最終勉強的讓mulitics動了起來,但是他們還是陷入了泥淖,心灰意冷的貝爾實驗室專家們撤離該工程後,去尋找其他任務。其中一位名叫ken thompson的研究人員對另乙個作業系統很感興趣,他為此好幾次向貝爾管理層提議,但均遭否決。thompson加緊工作,為pdp-7編寫了乙個簡易的新型作業系統。它比mulitics簡單得多,也輕便得多。整個系統都是用組合語言編寫的,brian kernighan在2023年給它取名為unix,自嘲地總結了從
mulitics中獲得的那些不該做的教訓。
ritchie和thompson在1970~2023年間共同開發出了c程式語言。
(僅作了解
)c程式語言是由bcpl語言發源而來,bcpl語言經過不斷的發展最終發展出了c語言。實際上b語言的前身還有a語言,取名於第一名女程式設計師的名字——ada。(僅作了解)
在編譯器中,效率幾乎就是一切。(編譯器設計者的金科玉律)當然還有許多東西,例如說定義有意義的錯誤資訊。編譯器的效率包括兩個方面:執行效率和編譯效率。有許多編譯優化措施會延長編譯時間,卻能縮短執行時間,也有些是即能縮短編譯時間,又能縮短執行時間。我們重點不研究編譯器,但是我們在開發的時候要考慮好自己的優化措施。
在c語言中,絕大多數庫函式或輔助程式都需要顯示呼叫,而在其他的一些語言中,是編譯器植入一些**隱式呼叫執行。
2023年c語言正式被發表,k&r也出了很有名的一本書《
the c programming language
》,這本書被 c語言開發者們稱為"k&r",很多年來被當作 c語言的非正式的標準說明。人們稱這個版本的 c語言為"k&r c"。
到後來也出現了一些的c語言版本,例如說ansi c。不同的c語言標準產生不同的c語言版本,不同的編譯器採用不同的c語言標準,所以我們在使用c開發程式的時候,得留乙個心眼了解一下編譯器,我們要保證程式**的可移植性,如將程式**放到其他編譯器下編譯連線執行會不會產生一些錯誤。
當你了解k&r c,也就了解ansi c的90%,這兩個版本之間的區別主要有三個。其實本來有四個的,最後乙個我省略了,因為它在現實中幾乎不可能碰到。
1.把形參的型別作為函式宣告的一部分;
2.增加了一些新的關鍵字;
3.「安靜的改變」——原先的有些語言特性仍然合法,但它的意思有了一些輕微的改變;
高階高階的c語言,有時間有必要閱讀一下ansi c標準文件,這可能會解決許多長時期令你頭痛的問題。
C專家程式設計 1 穿越時空的迷霧
任何人都可以享受程式設計。關於time t,什麼時候它會到達盡頭,重新回到開始呢?include include int main 2.編譯器設計者的金科玉律 效率 幾乎 就是一切 編譯器的效率包括兩個方面 執行效率 的執行效率 和編譯效率 產生可執行 的速度 除了一些開發和學習環境之外,執行效率起...
Chapter 01 穿越時空的迷霧
編譯器的效率包括兩個方面 執行效率 的執行速度 和編譯效率 產生可執行 的速度 執行效率起決定性作用 ken thompson在pdp 11上重新用組合語言實現了unix,dr創立了能夠同時解決多種資料型別和效率的 new b 語言 c 採用編譯模式而不是解釋模式,並引入型別系統,每個變數在使用前必...
C專家程式設計 第一章 C穿越時空的迷霧
c詭異離奇,缺陷重重,卻獲得了巨大的成功.效率幾乎就是一切。巨集最好只用於命名常量,並為一些適當的結構提供簡捷的記法。巨集名應該大寫。千萬不要使用c預處理器來修改語言的基礎結構。ansi c中最重要的特性就是 原型 這種特性取自c 原型是函式宣告的擴充套件,函式名 返回型別 形參型別都是已知的。這就...