本文將從編寫(xiě)利于優(yōu)化的源代碼,節(jié)省棧和內(nèi)存空間,函數(shù)原型,整型和位取反,同時(shí)讀寫(xiě)變量的保護(hù),不進(jìn)行初始化的變量這幾個(gè)方面來(lái)討論如何編寫(xiě)良好的嵌入式C代碼。
選擇一種合適的數(shù)據(jù)結(jié)構(gòu)很重要,如果在一堆隨機(jī)存放的數(shù)中使用了大量的插入和刪除指令,那使用鏈表要快得多。數(shù)組與指針語(yǔ)句具有十分密切的關(guān)系,一般來(lái)說(shuō),指針比較靈活簡(jiǎn)潔,而數(shù)組則比較直觀,容易理解。對(duì)于大部分的編譯器,使用指針比使用數(shù)組生成的代碼更短,執(zhí)行效率更高。
C 語(yǔ)言把文件看作是一個(gè)字符(字節(jié))的序列,即由一個(gè)一個(gè)字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為 ASCⅡ 文件和二進(jìn)制文件。文件的操作包括:文件的打開(kāi)、文件的關(guān)閉、文件的讀寫(xiě)操作、文件狀態(tài)檢查以及文件的定位等。
整型提升是C程序設(shè)計(jì)語(yǔ)言中的一項(xiàng)規(guī)定:在表達(dá)式計(jì)算時(shí),各種整形首先要提升為int類(lèi)型,如果int類(lèi)型不足以表示的話(huà),就需要提升為unsigned int類(lèi)型,然后再執(zhí)行表達(dá)式的運(yùn)算。
有限狀態(tài)機(jī)是一種概念思想,把復(fù)雜的控制邏輯分解成有限個(gè)穩(wěn)定狀態(tài),組成閉環(huán)系統(tǒng),通過(guò)事件觸發(fā),讓狀態(tài)機(jī)按設(shè)定的順序處理事務(wù)。單片機(jī)C語(yǔ)言的狀態(tài)機(jī)編程,是利用條件選擇語(yǔ)句( switch 、 case 或者 if 、 else )切換狀態(tài),通過(guò)改變狀態(tài)機(jī)狀態(tài),讓程序按設(shè)定的順序執(zhí)行。
void 與 void*;volatile關(guān)鍵字 ;數(shù)據(jù)占用大小……
寫(xiě)好C語(yǔ)言,漂亮的宏定義很重要,使用宏定義可以防止出錯(cuò),提高可移植性,可讀性,方便性等等。下面列舉一些成熟軟件中常用的宏定義。
如何保證C語(yǔ)言的執(zhí)行效率?
最近應(yīng)邀在??途W(wǎng)寫(xiě) C++ 求職專(zhuān)欄,又把以前的秋招總結(jié)補(bǔ)充了很多東西,現(xiàn)在想想還是發(fā)出來(lái),希望能夠幫助更多的新手小伙伴們。
日志框架可以自己編寫(xiě)(需要一定的能力哦),也可以由第三方(例如:log4cplus)提供。對(duì)于不同的日志框架,各自在實(shí)現(xiàn)方式上也有所不同。
結(jié)構(gòu)體、聯(lián)合體是C語(yǔ)言中的構(gòu)造類(lèi)型,結(jié)構(gòu)體我們平時(shí)應(yīng)該都用得很多。但是,對(duì)于聯(lián)合體,一些初學(xué)的朋友可能用得并不多,甚至感到陌生。
一文了解C語(yǔ)言和C++的特點(diǎn)與用法。
今天跟聊一下 BAT 面試 C++ 開(kāi)發(fā)工程師必問(wèn)的一個(gè)考點(diǎn):智能指針。
NoSQL開(kāi)發(fā)中或多或少都會(huì)用到,也是面試必問(wèn)知識(shí)點(diǎn)。最近這幾天的面試每一場(chǎng)都問(wèn)到了,但是感覺(jué)回答的并不好,還有很多需要梳理的知識(shí)點(diǎn),這里通過(guò)幾篇Redis筆記整個(gè)梳理一遍。
字符串是一種非常重要的數(shù)據(jù)類(lèi)型,但是C語(yǔ)言不存在顯式的字符串類(lèi)型,C語(yǔ)言中的字符串都以字符串常量的形式出現(xiàn)或存儲(chǔ)在字符數(shù)組中。同時(shí),C語(yǔ)言提供了一系列庫(kù)函數(shù)來(lái)對(duì)操作字符串,這些庫(kù)函數(shù)都包含在頭文件string.h中。
Spring Boot 2.4 開(kāi)始逐步提供對(duì) GraalVM 的支持,旨在提升上文所述的 啟動(dòng)、內(nèi)存、響應(yīng)的使用體驗(yàn)。
一文了解synchronized。
為什么要學(xué)習(xí)C/C++/object-c?如何學(xué)習(xí)C/C++?本文簡(jiǎn)單整理了一些C++圖書(shū)列表,按順序閱讀,可涵蓋入門(mén)到精通。
學(xué)C語(yǔ)言的一定要看!
這篇文章來(lái)聊聊大名鼎鼎的GDB,它的豪門(mén)背景咱就不提了,和它的兄弟GCC一樣是含著金鑰匙出生的,在GNU的家族中的地位不可撼動(dòng)。相信每位嵌入式開(kāi)發(fā)工程師都使用過(guò)gdb來(lái)調(diào)試程序,如果你說(shuō)沒(méi)有用過(guò),那只能說(shuō)明你的開(kāi)發(fā)經(jīng)歷還不夠坎坷,還需要繼續(xù)被 BUG吊打。