C語言 概述

一:概述

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.彙編語言是低級語言,功能不夠豐富,編寫程序對程序員的要求也更高,因爲,程序員必須能撐握CPUMCU的內存結構、總線結構、功能模塊、堆棧系統、中斷資源及機制等等

6.

C語言之父

C語言的誕生是現代程序語言革命的起點。今天,C語言依舊在系統編程、嵌入式編程等領域佔據着統治地位。C語言就是丹尼斯·裏奇開發的。因此,他被稱爲c語言之父、UNIX之父。

7.C語言的標準

 

K&R C(標準C),指的是ANSI CISO CC89C90

1.K&R C主要介紹了以下特色: 

· 結構(struct)類型

· 長整數(long int)類型

· 無符號整數(unsigned int)類型

· 把運算符=+=-改爲+=-=。因爲=+=-會使得編譯器不知道使用者要處理i = -10還是i =- 10,使得處理上產生混淆。

2.ANSI C    ISO C

3.C89   C90

· 增加了真正的標準庫  

· 新的預處理命令與特性  

· 函數原型允許在函數申明中指定參數類型  

· 一些新的關鍵字,包括 constvolatile signed  寬字符、寬字符串與字節多字符  

· 對約定規則、聲明和類型檢查的許多小改動與澄清

4.C99

· 支持不定長的數組,即數組長度可以在運行時決定。  

· 變量聲明不必放在語句塊的開頭,for 語句提倡寫成 for(int i=0;i<100;++i) 的形式,即i 只在 for 語句塊內部有效。  

· 初始化結構的時候允許對特定的元素賦值。  

· 允許編譯器化簡非常數的表達式。

· 取消了函數返回類型默認爲 int 的規定。

5.C11

最新標準

 


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