一直以來,嵌入式都是大家的關(guān)注焦點(diǎn)之一。因此針對(duì)大家的興趣點(diǎn)所在,小編將為大家?guī)砬度胧降南嚓P(guān)介紹,詳細(xì)內(nèi)容請(qǐng)看下文。
現(xiàn)在市面上的DSP產(chǎn)品很多,定點(diǎn)DSP有200多種,浮點(diǎn)DSP有100多種。主要生產(chǎn):TI 公司、AD公司、Lucent、Motorola和LSI Logic公司。
C語言是一門面向過程的、抽象化的通用程序設(shè)計(jì)語言,廣泛應(yīng)用于底層開發(fā)。C語言能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器。C語言是僅產(chǎn)生少量的機(jī)器語言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計(jì)語言。盡管C語言提供了許多低級(jí)處理的功能,但仍然保持著跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在包括類似嵌入式處理器以及超級(jí)計(jì)算機(jī)等作業(yè)平臺(tái)的許多計(jì)算機(jī)平臺(tái)上進(jìn)行編譯。
很多單片機(jī)初學(xué)者問我的第一句話都是:怎樣才能學(xué)好單片機(jī)?今天,我就結(jié)合我自己是如何開始學(xué)習(xí)單片機(jī)的,如何開始上手,又如何開始熟練等話題與大家分享。
Matlab被禁,不代表開源的Python和Julia就可以隨便用,甚至祖宗輩的C語言也不一定安全。就像Arm新技術(shù)被禁止華為使用,不代表華為就能自由使用所謂開源的RISC-V,開源技術(shù)的主導(dǎo)者仍然是美國,而且RISC-V從加州大學(xué)伯克利分校孵化成商業(yè)項(xiàng)目的第一個(gè)金主就是美國國防部旗下的國防高級(jí)研究計(jì)劃局(DARPA),用業(yè)內(nèi)人士的話說就是:要禁止中國人使用RISC-V簡(jiǎn)直比禁Arm理由更充分。
半個(gè)月前這位同學(xué)找到我,他當(dāng)時(shí)準(zhǔn)備參加面試,就和我聊了很多,總體感覺這位同學(xué)基礎(chǔ)還是不錯(cuò)。我那時(shí)候也就順便給他找了一些C語言、Linux等等筆試題,后面也教他稍微修改過幾次簡(jiǎn)歷??傮w來說,這位同學(xué)能有現(xiàn)在的三個(gè)比較好的offer很大原因在于他自身的基礎(chǔ)不錯(cuò),肯付出、肯努力的結(jié)果。前幾天和我分享了他參加面試遇到的一道c語言筆試題,他說當(dāng)時(shí)有點(diǎn)整不會(huì)了,竟然做錯(cuò)了,然后面試官也讓他自己回去想想。因?yàn)榇蟛糠诸}做的還可以,最后也通過了面試。題目是這樣的:
其實(shí)在 c++語言里面const修飾的才算是一個(gè)真正的常量,在 c 語言中 const 可以說是個(gè)“冒牌貨”。為什么會(huì)這樣?其實(shí)是 c++ 編譯器對(duì) const 進(jìn)行了加強(qiáng),當(dāng) c++ 編譯器遇到常量聲明時(shí),不會(huì)像 c 語言一樣給這樣const對(duì)象單獨(dú)分配內(nèi)存,c 語言一般是放在只讀數(shù)據(jù)區(qū),而 c ++ 編譯器是把const對(duì)象放在一個(gè)符號(hào)表里面(我個(gè)人覺得放在符號(hào)表里面的其中一個(gè)原因可能是想減少一些存儲(chǔ)操作次數(shù)),至于符號(hào)表是屬于內(nèi)存布局(文章:你該知道你寫的程序的內(nèi)存布局)中的哪一塊,我也不知道,寫 c++ 編譯器的人才知道。
昨天群友發(fā)文詢問,為什么C語言里bool似乎占用4Byte,給bool賦值后,它后面的3個(gè)字節(jié) 內(nèi)容也被修改了,并且她還強(qiáng)調(diào)代碼沒有經(jīng)過編譯器優(yōu)化(-O0是關(guān)閉優(yōu)化的意思)。
今天分享一個(gè)C語言宏定義小技巧,從語法上來看比較簡(jiǎn)單,不過一旦真正領(lǐng)悟到其精妙之處不僅可以簡(jiǎn)化代碼、還能提高代碼的可擴(kuò)展性。X-MACRO宏技術(shù)的核心在于靈活的應(yīng)用#define與#undef,對(duì)于玩C語言的伙計(jì)#define是再熟悉不過了,但#undef卻鮮有人在實(shí)際的開發(fā)過程中熟練使用,基本上都是#define走天下。那#define的作用域是怎樣的呢?其作用范圍都是從宏定義處到文件結(jié)束,不管函數(shù)內(nèi)外均可以隨意使用。那一不小心使用#define重復(fù)定義相同的宏又會(huì)怎樣呢?對(duì)于大部分編譯器會(huì)報(bào)重復(fù)定義警告,但也有小部分編譯器采用最近的宏定義直接通過,所以稍不留神就把bug引入到了代碼中。其實(shí)對(duì)于C語言編程素養(yǎng)良好的工程師們多會(huì)使用#undef來限制宏定義的作用范圍,即取消宏定義,以免造成宏泛濫。
最近看到APP上,給我推送了很多類似的回答,借此機(jī)會(huì),也想著重新審視一下自己的學(xué)習(xí)歷程,以及結(jié)合自身和大牛,分享一些學(xué)習(xí)經(jīng)驗(yàn),希望對(duì)大家有所啟發(fā)和幫助。
SQLite是一個(gè)跨平臺(tái)的輕量級(jí)數(shù)據(jù)庫,支持C/C++開發(fā),可用于嵌入式中,關(guān)于C/C++使用SQLite的簡(jiǎn)單實(shí)例,可參考這篇:“玩轉(zhuǎn)SQLite6:使用C語言來讀寫數(shù)據(jù)庫”,本篇來繼續(xù)介紹SQLite的基礎(chǔ)運(yùn)算符與表達(dá)式。
在計(jì)算機(jī)科學(xué)中,內(nèi)存泄漏指由于疏忽或錯(cuò)誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。
C語言使用函數(shù)調(diào)用,我們?cè)偈煜げ贿^了,但是函數(shù)調(diào)用在內(nèi)存中究竟發(fā)生了什么真的清楚嗎?只有搞清楚內(nèi)存里的內(nèi)幕,才算完全搞懂函數(shù)的調(diào)用。
有個(gè)粉絲關(guān)于條件編譯的問題,程序一直編譯報(bào)錯(cuò)。我整理了關(guān)鍵的部分,下面代碼是頭文件中的定義。
首先要看英文和C語言的關(guān)系,有多大層度是需要英文的支持。我們都知道C語言中一共有32個(gè)關(guān)鍵詞,控制語句僅有9種,也就是說只需要掌握以上內(nèi)容就可以對(duì)C語言進(jìn)行應(yīng)用,對(duì)于一些復(fù)雜的指針等更合英文沒有關(guān)系。我相信短短的32個(gè)關(guān)鍵詞根本難不倒各位同學(xué)吧。對(duì)于C語言的資料遍地都是,隨著時(shí)間的推移越來越多的大神分享自己學(xué)習(xí)C語言的方法,將各種博客、文章、視頻分享給大家,因此在學(xué)習(xí)C語言的時(shí)候根本不缺資料,作為一種主流的編程語言,是任何編程語言學(xué)習(xí)的前提。因此在資料方面根本不需要擔(dān)心。
C語言是一門面向過程的、抽象化的通用程序設(shè)計(jì)語言,廣泛應(yīng)用于底層開發(fā)。C語言能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器。C語言是僅產(chǎn)生少量的機(jī)器語言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計(jì)語言。盡管C語言提供了許多低級(jí)處理的功能,但仍然保持著跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在包括類似嵌入式處理器以及超級(jí)計(jì)算機(jī)等作業(yè)平臺(tái)的許多計(jì)算機(jī)平臺(tái)上進(jìn)行編譯。
為什么會(huì)寫篇棧變化的文章?做系統(tǒng)分析的話你肯定遇到過一些crash,oops等棘手問題,一般大家都會(huì)用gdb,objdump或者addr2line等工具分析pc位置來定位出錯(cuò)的地方。但是這些分析工具背后的本質(zhì)原理就不見得理解深刻了,而且有的時(shí)候面對(duì)一系列backtrace或者st...
點(diǎn)擊藍(lán)字關(guān)注我們請(qǐng)把努力當(dāng)成一種習(xí)慣,而不是三分鐘熱度。每一個(gè)你羨慕的收獲,都是努力用心拼來的。相信人生不會(huì)虧待你。12月6日華清遠(yuǎn)見武漢中心迎來了嵌入式21111班的開班典禮班主任介紹班級(jí)班規(guī)無規(guī)矩不成方圓,班級(jí)班規(guī)的制定是為了讓學(xué)生更加嚴(yán)于律己,也是為了方便班主任老師對(duì)學(xué)員進(jìn)...
一直覺得C語言較其他語言最偉大的地方就是C語言中的指針,有些人認(rèn)為指針很簡(jiǎn)單,而有些人認(rèn)為指針很難,當(dāng)然這里的對(duì)簡(jiǎn)單和難并不是等價(jià)于對(duì)指針的理解程度。為此在這里對(duì)C語言中的指針進(jìn)行全面的總結(jié),從底層的內(nèi)存分析,徹底讓讀者明白指針的本質(zhì)。01?指針變量首先讀者要明白指針是一個(gè)變量,...
提到C語言,很多人的第一反應(yīng)是:C語言,不都過時(shí)了?還有必要研究嗎??當(dāng)然有必要。用一個(gè)詞來形容:C生萬物。聽起來有點(diǎn)浮夸,但也沒說錯(cuò)?,F(xiàn)今這個(gè)世界上,幾乎所有重要的軟件都跟C有關(guān)系:?主流操作系統(tǒng)是C寫的,絕大多數(shù)語言的編譯器也是C寫的,數(shù)據(jù)庫、網(wǎng)絡(luò)、硬件驅(qū)動(dòng)、服務(wù)器應(yīng)用等等,...