1. 程式人生 > >嵌入式開發為什麼選擇C語言?

嵌入式開發為什麼選擇C語言?



嵌入式開發為什麼選擇C語言?

1.從語言特點來說:

C語言有出色的可移植性,能在多種不同體系結構的軟/硬平臺上執行

②簡潔緊湊,使用靈活的語法機制,並能直接訪問硬體

  能夠直接訪問硬體的語言有:彙編和C語言

  彙編屬於低階語言,難以完成一些複雜的功能,但是彙編比C語言訪問硬體的效率更高

  所以,一般將硬體初始化的工作交給彙編,比較複雜的操作交給C語言

③C語言具有很高的執行效率

2.嵌入式開發中的地位——開發工具

3.高階語言中的低階語言:面向過程VS面向物件

面向過程:

    “面向過程”(Procedure Oriented)是一種以過程為中心的程式設計思想。“面向過程”也可稱之為“面向記錄”程式設計思想,他們不支援豐富的“面向物件”特性(比如繼承、多型),並且它們不允許混合持久化狀態和域邏輯。
    面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候一個一個依次呼叫就可以了。面向過程其實是最為實際的一種思考方式,就算是面向物件的方法也是含有面向過程的思想。可以說面向過程是一種基礎的方法,它考慮的是實際地實現.一般的面向過程是從上往下步步求精,所以面向過程最重要的是模組化的思想方法.

面向物件:

    面向物件的分析根據抽象關鍵的問題域來分解系統。面向物件的設計是一種提供符號設計系統的面向物件的實現過程,它用非常接近實際領域術語的方法把系統構造成“現實世界”的物件。面向物件程式設計可以看作一種在程式中包含各種獨立而又互相呼叫的物件的思想,這與傳統的思想剛好相反:傳統的程式設計主張將程式看作一系列函式的集合,或者直接就是一系列對電腦下達的指令。面向物件程式設計中的每一個物件都應該能夠接受資料、處理資料並將資料傳達給其它物件,因此它們都可以被看作一個小型的“機器”,即物件。

面向過程和麵向物件的區別:

    以一個人從A地到B地為例,面向過程就是需要規劃路線,瞭解路況,自己做好一系列的準備;而面向物件就是坐上一輛計程車,告訴司機我要去B地就可以了,不用關心其他的事情。

相關推薦

關於嵌入式開發C語言基礎總結

一、位操作    C語言支援的6種位操作符如下:1. 不改變其他位的值的狀況下,對某幾個位進行設值。        方法:先對需要設定的位用&操作符(對應位&0)進行清零操作,然後用|操作符設值(對應位|你想要設定的值)。舉例:改變 GPIOA-> BS

嵌入式開發為什麼選擇C語言

1.從語言特點來說 ①C語言有出色的可移植性,能在多種不同體系結構的軟/硬平臺上執行。 ②簡潔緊湊,使用靈活的語法機制,並能直接訪問硬體能夠直接訪問硬體的語言有:彙編和C語言彙編屬於低階語言,難以完成一些複雜的功能,但是彙編比C語言訪問硬體的效率更高。 所以,一般將硬體

嵌入式開發為什麼選擇C語言

 嵌入式開發為什麼選擇C語言? 1.從語言特點來說: ①C語言有出色的可移植性,能在多種不同體系結構的軟/硬平臺上執行 ②簡潔緊湊,使用靈活的語法機制,並能直接訪問硬體   能夠直接訪問硬體的

嵌入式開發為什麼選擇C語言開發語言

眾所周知,C語言在嵌入式開發中佔有十分重要的地位,它們的關係非比尋常。那麼為什麼嵌入式開發會選擇C語言,而不是其他語言呢? 嵌入式開發是在作業系統內部做開發的,作業系統所有的核心幾乎都是C語言編寫,如果我們也使用C語言做開發,必定會具備一定的優勢。 再者,C語言相較其他的

嵌入式Linux開發常用C語言標準庫函式

推薦兩個網站: http://www.cplusplus.com/ 各大語言基礎入門必備網站 菜鳥教程:http://www.runoob.com/ 標準輸入/輸出類函式 scanf() http://www.runoob.com/cprogramming/c-functio

嵌入式系統開發人員C語言測試題(資料型別和變數)

} (40)以下程式的執行結果是______。 main() { unionEXAMPLE{ struct{ intx; inty; }in; inta; intb; }e; e.a= 1; e.b=

嵌入式LInux之C語言提升篇---Skr Skr Up Up

任務 開發者 三目運算 關鍵字const 此外 mat 庫函數 linu 限制 嵌入式C語言提升 致敬:每一個奮鬥的人! Up Up UpC語言常見編譯錯誤1.預處理錯誤 -E 1-1 找不到源文件錯誤 自己定義頭文件 使用 “xxx.

ios開發學習c語言第一天 2018-11-13

程式編譯過程 1.編寫程式碼 (1)找到一個整合開發環境作為我們的開發工具,例如Xcode、Visual studio 系列、C++ Builder、Delphi系列 (2)找到一個文字編譯器 (3)生成源程式檔案,以.c為字尾 2.預編譯  檔案以.i字尾 (1)標頭檔案的展開 巨集展

嵌入式題目,C語言

練習1 程式設計題: 29 #include <stdio.h> main() { long int m9=9,sum=9; int zi,n1=1,c9=1; scanf("%d",&zi); while(n1!=0) { if(!(su

嵌入式學習之C語言運算子加減舉例

C語言運算子加減舉例 指標運算子加減舉例 測試程式碼如下 首先定義了兩個十六進位制的int型別的變數,將變數b的地址賦給了p1,將b的變數中的四個位元組取小地址的位元組(指向99的位元組)賦給了char型別的指標p2,我們前面在進行不同型別的賦值的時候是有警告的,有些編

NX二次開發-初學者C++語言基礎入門部落格目錄【持續更新】

題目 例子 NX二次開發技術專欄 NX二次開發技術專欄【持續更新】 點選進入專欄

NX二次開發-初學者C語言基礎入門部落格目錄【持續更新】

題目 例子 一個簡單的C程式 點選進入目錄 一個完整的C程式 點選進入目錄 例子:已知長方體的高,通過輸入長和寬,求體積。

嵌入式面試題C語言(一)陣列一道面試題

這道題在工作中實際程式設計很少能遇到,至少我沒有涉及到,但是低於陣列指標其實是一種深入理解或者說另一種思考的角度,這是一道面試題: int a[] = {1,2,3,4,5,6,7}; 1.printf(“a[5] is %d\n”, a[5]); 2.printf(“5[a] is

嵌入式軟體工程師C語言經典筆試

一. 前處理器(Preprocessor)   1.1. 用預處理指令#define 宣告一個常數,用以表明1年中有多少秒(忽略閏年問題)   #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL     1.1.1. 我在這想看到幾件事情:

Android NDK開發C語言基礎及指標①

我們知道 , Android系統是基於linux開發 , 採用的是linux核心 , Android APP開發大部分也要和系統打交道 , 只是Android FrameWork 幫我們遮蔽了系統操作 , 我們從Android 系統的分成結構可以看出 , Android FrameWork是通過JNI與底層的

關於Android NDK開發--編寫C語言那些事

最近公司要求寫介面加密方法,還要求用寫成.so檔案; c語言還是大學時的垃圾底子,Android NDK開發也是根本沒有研究過,但是也只能一點一點摸索,藉此記錄一下,便於以後用到查詢方便,也讓跟我同樣的小白可以簡單借鑑一下,不至於這麼茫然。 下面就開始簡單的NDK開發:

Android NDK開發(一)C語言基礎語法

最近一段時間在攻克Android NDK開發。雖然大學的時候主要的學習是放在C/C++上的,但是自從大學畢業之後,就把所有學到的知識都還給老師了,所以,趁著這個機會,將C語言和NDK開發好好的總結一下,學習一下。 自己在網上也看了很多部落格,感覺大神們寫

windows下用mingw32+sdl進行簡單2d遊戲開發c語言

#include<stdio.h> #include "SDL/SDL.h" #include "SDL/SDL_image.h" SDL_Surface *screen; void video_init(){ //遊戲圖形模式初始化 if(SDL_Init(SDL_INIT_VIDEO

HQYJ嵌入式學習筆記——C語言複習day1

第一天:Linux命令 vim操作 第二天:資料型別 運算子 順序語句第三天:分支語句 迴圈語句第四天:迴圈語句 陣列第五天:陣列第六天:指標第七天:函式 陣列與指標第八天:陣列指標第九天:遞迴 第十天:結構體 嵌入式------->軟體控制硬體 windows 閉源的Linux

嵌入式C語言開發---存儲器與寄存器

orf inf 麻煩 gpio 區分 連續 寄存器 不足 div 概述: 講述如何使用C語言來對底層寄存器進行封裝 內容: 存儲器映射 寄存器與寄存器映射 C語言訪問寄存器 存儲器映射 程序存儲器、數據存儲器、寄存器和I/O 端口排列在同一個順序的4 GB 地址空間內