【Cortex-M0】5 ARM C語言編程

 

5.1 C語言簡史

 

   C 語言的開發是科技史上不可磨滅的偉大貢獻,因爲這個語言把握住了計算機科技中一個至關重要的並且是恰到好處的中間點,一方面它具備搭建高層產品的能力,另一方面又能夠對於底層數據進行有效控制。正是由於這種關聯性和樞紐性作用,決定了 語言所導向的近三十年來計算機編程主流方式。    

    C語言的祖先是BCPL語言。

  1967年,劍橋大學的 Martin Richards CPL語言進行了簡化,於是產生了BCPLBasic Combined Programming Language)語言。

  1970年,美國貝爾實驗室的 Ken Thompson。以BCPL語言爲基礎,設計出很簡單且很接近硬件的B語言(取BCPL的首字母),並且他用B語言寫了第一個UNIX操作系統。

  在1972年,美國貝爾實驗室的 D.M.Ritchie B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作爲這種語言的名字,這就是C語言。

  爲了使UNIX操作系統推廣,1977Dennis M.Ritchie發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。

  1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由B.W.KernighanD.M.Ritchie合著了著名的《The C Programming Language》一書。通常簡稱爲《K&R》,也有人稱之爲《K&R》標準。但是,在《K&R》中並沒有定義一個完整的標準C語言,後來由美國國家標準化協會(American National Standards Institute)在此基礎上制定了一個C語言標準,於一九八三年發表。通常稱之爲ANSI C

  K&R第一版在很多語言細節上也不夠精確,對於pcc這個參照編譯器來說,它日益顯得不切實際;K&R甚至沒有很好表達它所要描述的語言,把後續擴展扔到了一邊。最後,C在早期項目中的使用受商業和政府合同支配,它意味着一個認可的正式標準是重要的。因此(在M. D. McIlroy的催促下),ANSI1983年夏天,在CBEMA的領導下建立了X3J11委員會,目的是產生一個C標準。X3J111989年末提出了一個他們的報告[ANSI 89],後來這個標準被ISO接受爲ISO/IEC 9899-1990

  1990年,國際標準化組織ISOInternational Organization for Standards)接受了89 ANSI C I SO C 的標準(ISO9899-1990)。1994年,ISO修訂了C語言的標準。

  1995年,ISOC90做了一些修訂,即“1995基準增補1ISO/IEC/9899/AMD1:19951999年,ISO有對C語言標準進行修訂,在基本保留原來C語言特徵的基礎上,針對應該的需要,增加了一些功能,尤其是對C++中的一些功能,命名爲ISO/IEC9899:1999

  2001年和2004年先後進行了兩次技術修正。

  目前流行的C語言編譯系統大多是以ANSI C爲基礎進行開發的,但不同版本的C編譯系統所實現的語言功能和語法規則有略有差別。

 

5.2 C語言特點

    C是高級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。語言可以像彙編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元。

  C是結構式語言。結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控制程序流向,從而使程序完全結構化。

  C語言功能齊全。具有各種各樣的數據類型,並引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大,可以實現決策目的的遊戲。

  C語言適用範圍大。適合於多種操作系統,如WindowsDOSUNIX等等;也適用於多種機型。

  C語言對編寫需要硬件進行操作的場合,明顯優於其它高級語言,有一些大型應用軟件也是用C語言編寫的。

 

一、優點

 

① 簡潔緊湊、靈活方便

C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。語言可以像彙編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元。

 

② 運算符豐富

C語言的運算符包含的範圍很廣泛,共有34種運算符。C語言把括號、賦值、強制類型轉換等都作爲運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。

 

③ 數據類型豐富

C語言的數據類型有:整型、實型、字符型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種複雜的數據結構的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。

 

④ C是結構式語言

結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控制程序流向,從而使程序完全結構化。

 

⑤ 語法限制不太嚴格,程序設計自由度大

雖然C語言也是強類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度。

 

⑥ 允許直接訪問物理地址,對硬件進行操作

由於C語言允許直接訪問物理地址,可以直接對硬件進行操作,因此它既具有高級語言的功能,又具有低級語言的許多功能,能夠像彙編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元,可用來寫系統軟件。

 

⑦ 生成目標代碼質量高,程序執行效率高

   一般只比彙編程序生成的目標代碼效率低1020%.

 

⑧ 適用範圍大,可移植性好

C語言有一個突出的優點就是適合於多種操作系統,如DOSUNIXwindows 98windows NT,也適用於多種機型。C語言具有強大的繪圖能力,可移植性好,並具備很強的數據處理能力,因此適於編寫系統軟件,三維,二維圖形和動畫,它也是數值計算的高級語言。

 

 

二、 缺點

 

① C語言的缺點主要表現在數據的封裝性上,這一點使得C在數據的安全性上有很大缺陷,這也是CC++的一大區別。

② C語言的語法限制不太嚴格,對變量的類型約束不嚴格,影響程序的安全性,對數組下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。

 ……………………………………………………

 

書籍名稱:ARM Cortex-M0原理與應用實踐

書籍下載地址:http://download.csdn.net/detail/k125008301/4070709

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章