一:概述 1.嵌入式爲什麼選擇C語言開發
|
使用C語言的理由 設計特性 (融合控制特性) 高效性(緊湊且運行速度快) 可移植性(經過很少改動或不經修改就可以在其他系統上運行) |
2.C語言有什麼特點 (移植性 訪問硬件 運行效率)
|
1.中級語言(高級語言成分和彙編語言功能結合)
2.C允許對位、字節和地址這些計算機功能中的基本成分進行操作,容易移植
3.支持數據類型,卻不是強類型語言,允許幾乎所有的類型轉換
4.僅有3 2個關鍵字
5.C語言是結構化語言,更易於維護,代碼和數據的分離 C語言不允許在函數中定義函數,所以不能稱之爲通常意義上的塊結構語言 C語言的主要結構成分是函數C的獨立子程序
6.C語言是程序員的語言(程序生成、修改和現場測試自始至終均由真正的程序員進行 可以用它代替彙編語言 )
7.幾乎所有的計算機上都有C語言編譯程序,可移植性節省了時間和財力
8.C語言系統都提供了專門的函數庫,程序員可以根據不同需要對其進行剪裁
分別編譯,所以C語言可使程序員方便地管理大型項目 |
3. C語言有什麼劣勢(代碼複用性 代碼維護性 代碼擴展性) |
1.C對指針,會犯非常難以追蹤的編程錯誤 2.C的簡潔性與其豐富的運算符相組合,可能編寫出極難理解的代碼 3.面向過程,以功能爲中心來設計功能模塊,難於維護
4.數據安全有缺陷(表現在數據封裝性上)
5.語法限制不嚴格,變量類型約束不嚴格,數組下表越界不檢查,不提供命名空間,構造函數和析構函數不可用 6.直接靠近硬件操作不安全 |
4.面向結構和麪向對象編程特點和區別
|
面向過程 (行爲):列出解決問題步驟,用函數分步實現,使用時依次調用 面向對象 (屬性):具有一個或多個屬性的物體抽象爲類
不同:(1)面向過程程序設計方法採用函數(或過程)來描述對數據的操作,函數與數據分離;面向對象程序設計方法將數據和對數據的操作封裝在一起。(2)面向過程程序設計方法以功能爲中心來設計功能模塊,難於維護;而面向對象程序設 計方法以數據爲中心來描述系統,更易於維護。(3)面向過程程序的控制流程由程序中預定順序來決定;面向對象程序的控制流程由運行時各種事件的實際發生來觸發,更符合實際需要。(4)面向對象程序設計方法可以利用框架產品(如 MFC,Microsoft Foundation Classes)進行編程。根本差別在於封裝之後,面向對象提供了面向過程不具備的各種特性(繼承、多態)。
|
5.C語言VS彙編(共同:都能訪問硬件 區別)
|
1.彙編語言實質上機器語言的助記符,彙編語言與機器語言是一一對應的,沒辦法一一對應,需要有編譯規則,彙編語言可以直接而靈活地管理包括特殊功能寄存器、通用寄存器、存儲單元的每一個字節,甚至是每一個bit,資源利用率更高。C語言對內存的使用及管理功能也是很強大的,但畢竟還是受制於語法。
2.而C語言豐富而實用的語句決定了C語言程序靈活性以及強大的代碼組織能力。利用C語言,可以很方便地編寫出龐大的工程,在版本管理工具的幫助下,可以很實現多人協作編程。特別是引入RT-OS以後,C語言的程序框架更加靈活了,添加功能(任務)更加輕鬆。因爲,所有的任務的調控可以直接交給操作系統來做,而程序員需要做的是編寫任務(含一個或多個功能模塊)的內容,以及設置任務的優先級,堆棧數等等
3.彙編語言是低級語言,功能不夠豐富,編寫程序對程序員的要求也更高,因爲,程序員必須能撐握CPU或MCU的內存結構、總線結構、功能模塊、堆棧系統、中斷資源及機制等等 |
6. C語言之父 |
C語言的誕生是現代程序語言革命的起點。今天,C語言依舊在系統編程、嵌入式編程等領域佔據着統治地位。C語言就是丹尼斯·裏奇開發的。因此,他被稱爲c語言之父、UNIX之父。 |
7.C語言的標準
|
K&R C(標準C),指的是ANSI C,ISO C,C89,C90 1.K&R C主要介紹了以下特色: · 結構(struct)類型 · 長整數(long int)類型 · 無符號整數(unsigned int)類型 · 把運算符=+和=-改爲+=和-=。因爲=+和=-會使得編譯器不知道使用者要處理i = -10還是i =- 10,使得處理上產生混淆。 2.ANSI C ISO C 3.C89 C90 · 增加了真正的標準庫 · 新的預處理命令與特性 · 函數原型允許在函數申明中指定參數類型 · 一些新的關鍵字,包括 const、volatile 與 signed 寬字符、寬字符串與字節多字符 · 對約定規則、聲明和類型檢查的許多小改動與澄清 4.C99 · 支持不定長的數組,即數組長度可以在運行時決定。 · 變量聲明不必放在語句塊的開頭,for 語句提倡寫成 for(int i=0;i<100;++i) 的形式,即i 只在 for 語句塊內部有效。 · 初始化結構的時候允許對特定的元素賦值。 · 允許編譯器化簡非常數的表達式。 · 取消了函數返回類型默認爲 int 的規定。 5.C11 最新標準
|
C語言 概述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.