編程時(shí),經(jīng)常用到進(jìn)制轉(zhuǎn)換、字符轉(zhuǎn)換。比如軟件界面輸入的數(shù)字字符串,如何將字符串處理成數(shù)字呢?今天就和大家分享一下。01字符串轉(zhuǎn)十六進(jìn)制代碼實(shí)現(xiàn):void?StrToHex(char?*pbDest,?char?*pbSrc,?int?nLen){??char?h1,h2;??ch...
關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容來(lái)源:整理與網(wǎng)絡(luò)素材編程時(shí)經(jīng)常用到進(jìn)制轉(zhuǎn)換、字符轉(zhuǎn)換。比如軟件界面輸入的數(shù)字字符串,如何將字符串處理成數(shù)字呢?和大家分享一下。01字符串轉(zhuǎn)十六進(jìn)制代碼實(shí)現(xiàn):voidStrToHex(char*pbDest,char*pbSrc,intnLen){ch...
▼點(diǎn)擊下方名片,關(guān)注公眾號(hào)▼一、如何進(jìn)行按鍵檢測(cè)檢測(cè)按鍵有中斷方式和GPIO查詢方式兩種。推薦大家用GPIO查詢方式。1.從裸機(jī)的角度分析中斷方式:中斷方式可以快速地檢測(cè)到按鍵按下,并執(zhí)行相應(yīng)的按鍵程序,但實(shí)際情況是由于按鍵的機(jī)械抖動(dòng)特性,在程序進(jìn)入中斷后必須進(jìn)行濾波處理才能判定...
點(diǎn)擊“藍(lán)字”關(guān)注我吧總述????宏的使用,大家經(jīng)常會(huì)用,但是一般只是簡(jiǎn)單定義一個(gè)符號(hào)常量,類似于#defineWHEEL_SCALE_MM?0.53f、#defineLOG_I(tag,text_fmt,...)log_i(tag,text_fmt,##__VA_ARGS__)?...
01—C虛函數(shù)探索C是一門面向?qū)ο笳Z(yǔ)言,在C里運(yùn)行時(shí)多態(tài)是由虛函數(shù)和純虛函數(shù)實(shí)現(xiàn)的,現(xiàn)在我們看下在C中如何用虛函數(shù)實(shí)現(xiàn)多態(tài)。先來(lái)看一段代碼。//virtual_function.cpp:此文件包含"main"函數(shù)。程序執(zhí)行將在此處開(kāi)始并結(jié)束。//#include?class?Ba...
來(lái)自公眾號(hào):嵌入式ARM1、字符串轉(zhuǎn)十六進(jìn)制代碼實(shí)現(xiàn):void?StrToHex(char?*pbDest,?char?*pbSrc,?int?nLen){??char?h1,h2;??char?s1,s2;??int?i;????for?(i=0;?i?9)??????????...
來(lái)源|程序喵大人在軟件中隨處可見(jiàn)命名:要給變量、函數(shù)、參數(shù)、類和封包命名,還要給源代碼及源代碼所在目錄命名,甚至還有jar文件、war文件和ear文件命名。但是,看似簡(jiǎn)單的命名,也是讓不少程序員頭疼的問(wèn)題。有一些小伙伴,在進(jìn)行變量命名的時(shí)候,對(duì)于自己熟悉的英文,可能還會(huì)用英文命名一下,如果需要命名的部分不會(huì)用英文表達(dá),或許就直接用拼音了。有的童鞋一下想不起來(lái)怎么命名,直接用拼音直接用aa,bb等這樣沒(méi)有任何代表意義的字母來(lái)命名,可讀性非常差,可能自己今天寫的,一個(gè)星期后回來(lái)再看,也忘記其具體代表的含義了。因此,許多人在寫代碼之前,總會(huì)在想啊想啊,用什么命名法好呢?對(duì)于經(jīng)常在C、Java、Pyt...
點(diǎn)擊上方「嵌入式大雜燴」,選擇「置頂公眾號(hào)」第一時(shí)間查看嵌入式筆記!來(lái)源:CSDN1.函數(shù)宏介紹函數(shù)宏,即包含多條語(yǔ)句的宏定義,其通常為某一被頻繁調(diào)用的功能的語(yǔ)句封裝,且不想通過(guò)函數(shù)方式封裝來(lái)降低額外的彈棧壓棧開(kāi)銷。函數(shù)宏本質(zhì)上為宏,可以直接進(jìn)行定義,例如:#define?INT...
#?干了這碗雞湯生活是苦難的,我又劃著我的斷槳出發(fā)了。--博爾赫斯想必很多人都聽(tīng)說(shuō)過(guò)虛函數(shù)開(kāi)銷大,貌似很多答案都說(shuō)是因?yàn)樘摵瘮?shù)表導(dǎo)致的那一次間接調(diào)用,真的如此嗎?直接看下面這兩段代碼:#include?#include?"timer.h"struct?Base?{???publi...
C內(nèi)聯(lián)函數(shù)的概念介紹內(nèi)聯(lián)函數(shù)之前,需要說(shuō)明一下C在執(zhí)行普通函數(shù)時(shí)的一個(gè)過(guò)程,在調(diào)用普通函數(shù)時(shí),執(zhí)行到函數(shù)調(diào)用指令時(shí),程序?qū)⒃诤瘮?shù)調(diào)用后立即存儲(chǔ)該指令的內(nèi)存地址,并將函數(shù)參數(shù)復(fù)制到堆棧,跳轉(zhuǎn)到標(biāo)記函數(shù)起點(diǎn)的內(nèi)存單元,執(zhí)行函數(shù)代碼,然后調(diào)回到地址被保存的指令處,下圖是關(guān)于C普通函數(shù)調(diào)...
“一個(gè)函數(shù)的代碼盡量不要超過(guò)50行”
什么是可重入函數(shù)與不可重入函數(shù)??jī)烧哂泻蝺?yōu)缺點(diǎn)?
在與傳感器或者模塊的總線進(jìn)行通信的時(shí)候,常常需要使用到精確延時(shí),一般我們會(huì)封裝幾個(gè)常用延時(shí)函數(shù), 下面我們以STM32F103芯片為例,詳細(xì)介紹一下STM32下一種精確延時(shí)函數(shù)的實(shí)現(xiàn): 時(shí)鐘樹(shù) 下圖中紫色的 to Cortex System timer(MHz)就是Systick的時(shí)鐘頻率
一文了解字符串轉(zhuǎn)十六進(jìn)制。
但 凡是學(xué)過(guò)C語(yǔ)言的人,都知道要先寫main函數(shù),然而很多時(shí)候我們看到的main函數(shù)卻各有差異,這究竟是為啥? 哪種是對(duì)的呢? 今天我們就來(lái)聊聊main函數(shù)。 那么main函數(shù)一共有多少個(gè)版本呢? 1、main() 直接的mian()并沒(méi)有返回值,沒(méi)有入?yún)?。這種寫法實(shí)際來(lái)
這是一個(gè)群友發(fā)的筆試題目,里面涉及的東西也比較有意思。 直接看代碼 void?(*f[])(char?*) 這個(gè)是個(gè)什么東西? 我們先看看下面的東西 函數(shù)指針和指針函數(shù)的定義 我們看個(gè)代碼 int?*func(int?a,int?b) 我們之前說(shuō)過(guò)運(yùn)算符的優(yōu)先級(jí),「 *?」 ?的優(yōu)先級(jí)低于「(
1、字符串轉(zhuǎn)十六進(jìn)制 代碼實(shí)現(xiàn): void?StrToHex(char?*pbDest,?char?*pbSrc,?int?nLen) { ??char?h1,h2; ??char?s1,s2; ??int?i; ????for?(i=0;?i
以下源代碼是之前閱讀C庫(kù)代碼獲取的,分享一下: _lrotr()將一個(gè)無(wú)符號(hào)長(zhǎng)整形數(shù)左循環(huán)移位的函數(shù) 原形:unsigned long _lrotr(unsigned long value,int count) 功能:將value向左循環(huán)移動(dòng)count位。 返回值:將value向左循環(huán)移動(dòng)count位后的值。 頭文件:stdli
前面移植了RT-Thread Nano,其實(shí)準(zhǔn)確來(lái)說(shuō)那不叫移植,那叫做部署,因?yàn)橐浦驳墓ぷ鞴俜揭呀?jīng)幫我們做好了。 文章鏈接:小熊派移植RT-Thread Nano 1、引發(fā)思考-相關(guān)資料檢索 在之前的文章提到過(guò),RT-Thread已經(jīng)提前在main函數(shù)以前就把跟硬件配置、系統(tǒng)初始化、啟
1 不可重入函數(shù) 在實(shí)時(shí)系統(tǒng)的設(shè)計(jì)中,經(jīng)常會(huì)出現(xiàn)多個(gè)任務(wù)調(diào)用同一個(gè)函數(shù)的情況。如果有一個(gè)函數(shù)不幸被設(shè)計(jì)成為這樣:那么不同任務(wù)調(diào)用這個(gè)函數(shù)時(shí)可能修改其他任務(wù)調(diào)用這個(gè)函數(shù)的數(shù)據(jù),從而導(dǎo)致不可預(yù)料的后果。這樣的函數(shù)是不安全的函數(shù),也叫不可重入函數(shù)。