大家討論下,為什麼嵌入式裡面現在基本上都是C語言

2021-03-04 05:26:23 字數 5995 閱讀 5340

1樓:匿名使用者

可以直接操作硬體的

對驅動以及啟動程式 支援最好的 只有c語言和彙編而彙編編起來太累 太煩

自然c語言適者生存了

其它的 都沒c好。

為什麼大家都選擇c語言

2樓:

你聽誰說的?c語言的領域現在集中在作業系統、驅動程式、微控制器開發、嵌入式系統這些方面(而且python、go等語言還在向它的領域滲透),其他領域裡面c並不是首選,工程師會根據領域的實際需要,選擇適合的語言和庫,這世界上每種語言都有它擅長和獨到的地方。

c語言和嵌入式c語言有什麼區別

3樓:匿名使用者

實際上是沒有太大的差別,只是本身的庫可能不同,嵌入式有很多時候會受到硬體的限制,同時,在編寫嵌入式的程式時,對於實時性要求可能會很高,同時,由於嵌入式系統一般記憶體,cpu等資源有限,程式設計時需要特別考慮系統的高效性……

4樓:於迎偉

語法沒什麼區別,在標準庫的基礎上加入了自己的一切庫函式,比如linuxc

5樓:戰雅逸韓帆

唯一的區別就是注意棧的的深度,記憶體太小棧容易被擊穿!呵呵,開玩笑。其實沒啥區別,其編譯器都遵循c標準。

6樓:緱安荷楚新

從c語言來看沒有區別,要說有區別就是面試的人忽悠被面的人.使用上可能要注意的點會有點不一樣:1.

記憶體分配要注意;2.堆疊使用要注意;3.跟硬體相關的一些東西要注意;4.

要有系統概念,涉及到rtos或者自己寫的前後臺系統.

7樓:釁悅遠揭勤

語法上什麼的是沒什麼區別了....都遵循標準嘛!編譯器和平臺的不同當然在一些細節上有區別了!

c語言和嵌入式c語言有什麼區別

8樓:┃vest丶

嵌入式c語言和c語言是完全一樣的,寫**上完全沒有區別。下面由卓躍教育為您介紹它們兩者間的區別。

區別在於嵌入式的c語言是跑在嵌入式的開發板上的,cpu和我們電腦不一樣,所以編譯器也是不一樣的,生成的可執行程式也是不一樣的。

首先c語言,這個是毋庸置疑的,不管是做嵌入式軟體還是硬體開發的人員,對c語言的掌握這個是必需的,特別是對於以後致力於嵌入式

後,就該寫**了,動手才是最重要的,當你動手了,遇到問題了,再反過來學習,反過來查查課本,那時的收穫就不是你死看書能得到的。

其次,應該對作業系統有所瞭解,這對你對硬體和軟體的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如程序、執行緒,系統

驗,會有更好的理解的。

還有應該學習嵌入式系統,如linux或者wince下的程式設計,這些對以後做應用的程式設計很有幫助,當然,如果做手機的話,那可以學習mtk、塞

班、android等作業系統,android是以後發展的趨勢,現在很熱門,android也是基於linux系統封裝的,所以建議先學習下linux。

還有,應該學習下微控制器或者arm或者mips,很多人說我沒有微控制器的經驗,直接學arm可以嗎?我覺得那完全沒有問題的,當然如果你學

習過微控制器,那最好不過了,以後學習arm就更簡單了。

最後如果你把以上的知識都有所瞭解後,就該去閱讀閱讀一些優秀的**,比如結合arm晶片手冊學習去學習下uboot的源**,瞭解下最

小的系統開發,那對你整個嵌入式開發的非常有幫助的,可以的話,還可以學習下linux的源**,當然如果你直接閱讀2.6的**,我想你會

很痛苦的,可以先看看linux**早期的版本,比如0.12的**等等,麻雀雖小,五臟俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程師。

最後,希望這篇文章對熱愛嵌入式,想致力於嵌入式開發的朋友有所幫助。

嵌入式為什麼選擇c語言

9樓:

這個是有c語言

的特性來決定的,c語言的特點是既有高階語言的特性也有低階版語言的特性,權c語言既能直接進行硬體底層的相關操作,又能實現上層的應用程式開發,並且執行高效、可移植,幾乎所有的作業系統底層的實現絕大部分都是使用c語言來實現的,少數地方需要使用組合語言,嵌入式裝置的執行要求和c語言是一拍即合吧。

如何學習c語言

10樓:卯永芬次凰

學習c語言的方法很多,最有效的莫過於

學習心態以及學習的順序!

心態要端正,遇到問題別懷疑自己的大腦和能力,我敢保證只要你沒有智障,任何語言對你來說絕對不是問題!

學習順序非常重要,比方說你不能在不學習普通型別變數的操作下去學習陣列……我建議你好好把基礎大好,還有一個就是

c語言在執行的過程中

他的底層是如何實現的,這個很重要,

如果你按照我說的學習,c語言對你來說

很容易!

11樓:赫微蘭羅巳

藉此希望對初學者有點幫助:

一、分號

,大括號

分號。分號是表示式結束的標誌,一般表示式後面都要有。

寫「;」的時候一定要注意:是否要結束前面的語句

。注意:if,switch,for,while語句,資料型別定義,函式定義。

if(a>b)

/*if語句,沒有分號*/

while(i+=10,i!=100);

/*while語句迴圈體為空,依靠逗號語句實現迴圈*/

struct

a/*結構體資料定義,沒有分號*/

b;/*結構體變數,要有分號*/

intsum(...)

/*函式定義,沒有分號*/

大括號。大括號是一個語句段的標誌。

寫大括號時最好一次寫一對,然後把游標移到大括號裡寫

。避免遺漏。

二、運算子號

「=」與「==」

「=」用於賦值,注意「=」左邊必須是變數,右邊可以是常量也可以是變數。「==」用於判斷兩個量的大小,左右兩邊可以是常量也可以是變數(

儘量把常量寫在左邊,這樣「==」誤寫成「=」時編譯器就會報錯

)。運算表示式有它本身的值

。「=」語句值為「=」右邊的量的大小;「==」語句值為判斷結果,無外乎兩種,0(表示「==」兩邊不等)1(「==」兩邊相等)。

(i=1)==(3==4);

/*i值為1,整個表示式值為0*/

「,」逗號語句是從左到右計算,整個逗號語句的值為最後一個語句的值

i=(j=2,j+8,j++);

/*先計算j=2,值為2,j+8不是運算表示式,跳過,計算j++得到整個括號內的值3*/

「/」「/」兩邊都是整型變數的時候結果也是整型,而且結果遵循向0靠攏的原則

。運算子的優先順序及結合方向

不多說了,**一定要背牢。

三、變數

命名不要吝惜,能說明白性質儘量在變數的名字上說明。

避免老是使用一個字母,或者難以理解的變數名

。對於較長的變數命名可以使用巨集定義、型別定義。

#deine

up0x4800

/*鍵碼的巨集定義*/

typedef

struct

mem;

/*結構體變數的型別定義*/

12樓:呼新蘭騎丙

嘿嘿,你跟我有那麼一比

當初我也是成績相當不好

但是隻要感興趣,絕對是學得好的。

有人說學c++之前一定要學c。

這倒不一定

但是如果直接學c++的話

之後最好再看看c

瞭解一下也是有好處的,

c++primer

是本好書

注意不是primer

plus

這本我沒看過

甚至你可以隨便先找本爛書看

如果你屬於很好問的人的話

你一定會有很多問題

然後再看c++primer

那樣效果會很好的

另外,多上論壇

不懂問就是

積累了一定的知識之後可以試著幫著回答別人的一些問題這樣可以加強自己對語言的理解。

有一點不同意樓上的說法

c語言是基礎,但他絕不簡單

簡單的知識語法而已

而你知道語法有什麼用呢?

就好比你知道中文的語法

你就能寫出漂亮的詩歌嗎?

答案是否定的……

語法並不太必要刻意熟記,

用多了自然就記得了

思考演算法、結構

最重要的是程式設計思想。

「物件導向」不是說說而已

如果沒理解清楚那寫出來的東西說不定就是四不象。

但是不必害怕,

雖然不簡單,但也不是難以入門。

具體的在你學的過程中是能夠慢慢體會到的。

13樓:匿名使用者

1.c語言是一種程序導向的程式語言,非常靠近底層的程式語言,相對來說來講語法細節不是很多,但是這種自由組合的力度,靈活性非常強,真要組合起來**也是比較難看懂的,所以linux核心原始碼真正核心機制方面的**基本很難看懂,關鍵在與靈活運用,所以要想掌握的徹底就需要把基礎概念徹底搞明白,c語言難易理解的概念也就是那麼幾個,指標,指標函式,**,遞迴等概念。可以來和大家一起學習交流

3.無論理論學到什麼程度,總要找到實踐平臺去練手,可能這對於初學者而言比較難,如果是在學校裡面,途徑相對少點,有些學校裡面老師本身會接一些專案,正好需要一些基礎還不錯的人一塊幫著去做,這都是不錯的機會,前提基礎要弄好。當然最直接的是研究開源社群的**,**可以直接拿到,先從看懂**開始,能看懂**也是一種巨大的進步,畢竟**都不是孤立的,需要連串著去看,需要從**裡面抽象出中心思想,然後嘗試著去修改,雖然看起來距離實際的專案有距離了,但這是做專案之前必經之路,先從修改簡單的功能入手,然後再慢慢切入,做任何事情都需要有個過程。

學習程式設計要保持足夠的耐心,起碼讓自己在大染缸裡面,呆上一段時間,不要輕易下結論自己不適合這個行業,沒有什麼做不成的事情,關鍵看堅持的力度。

14樓:巴其英閔羅

c語言是一個比較簡單但是經典的入門語言,對於學習程式設計學習者來說,有著非常重要的地位!

c學習過程中要記憶一些語法、詞法,這是基礎,而且這沒有什麼原因就是這麼規定的,注意在練習中慢慢熟悉!!在其他語言中,這些會有一些不同!

著重學習演算法,這是程式設計相同的部分,不管c,b還是java演算法都是一樣的!

兩個重要的學習方法:上機練習,和高手交流!!!

你會對c感興趣的!慢慢享受!很好玩的!呵呵……有問題及時交流!

~用譚浩強的c程式設計。。

是一本比較基礎的書。。現在大學,很多都用這書的

在初學c語言時,可能會遇到有些問題理解不透,或者表達方式與以往數學學習中不同(如運算子等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進行學習,待學完後面的章節知識,前面的問題也就迎刃而解了,這一方面我感覺是我們同學最欠缺的。大多學不好的就是因為一開始遇到困難就放棄,曾經和好多同學談他的問題,回答是聽不懂、不想聽、放棄這樣三個過程,我反問,這節課你聽過課嗎?回答又是沒有,根本就沒聽過課,怎麼說自己聽不懂呢?

相應的根本就沒學習,又談何學得好?

學習c語言始終要記住「曙光在前頭」和「千金難買回頭看」,「千金難買回頭看」是學習知識的重要方法,就是說,學習後面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是我們學生最不易做到的,然而卻又是最重要的。學習c語言就是要經過幾個反覆,才能前後貫穿,積累應該掌握的c知識

c語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程式設計語言。在表示式方面較其它程式語言更為簡潔,如自加、自減、逗號運算和三目運算使表示式更為簡單,但初學者往往會覺的這種表示式難讀,關鍵原因就是對運算子和運算順序理解不透不全。當多種不同運算組成一個運算表示式,即一個運算式中出現多種運算子時,運算的優先順序和結合規則顯得十分重要。

在學習中,只要我們對此合理進行分類,找出它們與我們在數學中所學到運算之間的不同點之後,記住這些運算也就不困難了,有些運算子在理解後更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。

先要明確運算子按優先順序不同分類,《c程式設計》運算子可分為15種優先順序,從高到低,優先順序為1

~15,除第2、13級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算子的運算順序.

嵌入式軟體是什麼型別軟體,嵌入式軟體和非嵌入式軟體有什麼區別?用大白話給我講講

內容來自使用者 天成資訊 什麼是嵌入式軟體 什么是嵌入式軟體 我們都知道,計算機系統可以處理各種資料 管理各種資料,我們這裡所說的資料是包括文字 數字 以及各種指令。計算機系統就象人的大腦,記憶我們經歷過的各種資訊,幫我們分析各種資訊,還可以控制指揮我們的各種行為。我們希望能製造各種有智慧的機器,那...

嵌入式軟體和非嵌入式軟體有什麼區別?用大白話給我講講

定義不一樣 1 嵌入式軟體就是嵌入在硬體中的作業系統和開發工具軟體。2 非嵌入式軟體和嵌入式軟體正好相反,其是指可以跨平臺甚至跨系統使用的軟體系統。具體實義不一樣 1 嵌入式軟體就是基於嵌入式平臺 比如arm linux 的應用軟體或者系統軟體 2 非嵌入式軟體大多指基於通用處理器和作業系統平臺的軟...

嵌入式軟體工程師主要做什麼工作,嵌入式軟體工程師具體做什麼工作 知乎

主要課程 c語言程式設計 資料結構 嵌入式作業系統 wince linux symbian 微控制器原理與開發 嵌入式gui 移動 手機應用軟體開發 dsp嵌入式系統開發 嵌入式軟體系統測試 培養目標 精通嵌入式程式設計語言和相關軟體開發工具,掌握嵌入式軟體的基本理論和開發流程,達到各類嵌入式軟體 ...