今天給大家?guī)?lái)的是一道特別特別特別經(jīng)典的題目接雨水問(wèn)題,這個(gè)問(wèn)題是很多算法書上面舉例過(guò)的題目。雖然是難度題,但是相對(duì)來(lái)說(shuō)還是比較容易理解的,代碼長(zhǎng)度也適中,說(shuō)了這么多,就一個(gè)意思,大家記得打卡這個(gè)題目啊,真的是很nice的一道題,下面我們來(lái)看一下題目描述。
不同的平臺(tái)的匯編代碼是不一樣的,最早的匯編在50年代就發(fā)明了,比很多人的父母的年齡都大,老掉牙,不用學(xué)習(xí)怎么寫匯編。一個(gè)公司有一個(gè)人知道怎么寫匯編就夠了。但要學(xué)習(xí)讀匯編, 為什么學(xué)習(xí)匯編?
這是一段古董代碼了,因?yàn)樵?994年,當(dāng)時(shí)我的一個(gè)老師也是做匯編項(xiàng)目,他跟我聊過(guò)的故事是,當(dāng)時(shí)是他跟一個(gè)前輩一起去現(xiàn)場(chǎng)給客戶看故障,調(diào)試,用的ARM匯編,當(dāng)時(shí)前輩是賺了2w,他賺到了6k的樣子。在94年能夠精通匯編,雖然不被大眾認(rèn)可,認(rèn)為這個(gè)電腦還是比較飄幻,因?yàn)槟菚r(shí)候還沒有進(jìn)入尋常百姓家,我接觸電腦在初中,那時(shí)候也02-03年了,而且那時(shí)候要記指令,也沒多少畫面,印象不深。
這些SpringBoot注解太實(shí)用了,必須收藏!
設(shè)計(jì)更好的軟件,替換If-Else的5種方法。
重構(gòu),著實(shí)是一件讓程序員興奮的事情。今年年初,我們團(tuán)隊(duì)完成了一個(gè)復(fù)雜項(xiàng)目的重構(gòu)工作,它屬于廣告系統(tǒng)最核心的引擎部分,大概有300多個(gè)文件,3萬(wàn)多行代碼。 從技術(shù)方案設(shè)計(jì)到最終全量上線僅僅花了1個(gè)月左右的時(shí)間,而且沒有產(chǎn)生事故。 這應(yīng)該是我8年程序生涯中,經(jīng)歷過(guò)的最大型的同時(shí)最成功的一次重構(gòu)項(xiàng)目:速度足夠快、計(jì)劃比較周全、質(zhì)量過(guò)關(guān)。
首先你要有一個(gè)bin文件(bin文件的獲取方法不在此展開介紹,今后有機(jī)會(huì)可以專門開一個(gè)貼聊一聊)。本次實(shí)驗(yàn)用到的bin文件? ?stm32_xwrtos.bin.zip (6 KB) 是用ST官方CMSIS和外設(shè)庫(kù)編譯的跑在stm32f103c8t6上的bin文件,比較具有代表性。
這個(gè)是今天在微信群里討論的一個(gè)問(wèn)題,然后我們就在群里討論,有的大神說(shuō)這個(gè)是內(nèi)存越界,也有大神說(shuō)可能是人品有問(wèn)題,也有大神說(shuō)這個(gè)是因?yàn)閷懘a前沒有選好一個(gè)良辰吉日,反正大家想法都非常多,也非常古怪,這可能就是討論群存在的一個(gè)原因了。經(jīng)過(guò)不斷的驗(yàn)證,發(fā)現(xiàn)這個(gè)問(wèn)題是因?yàn)榫幾g器優(yōu)化的問(wèn)題。
在使用 lvgl 庫(kù)的時(shí)候,筆者使用的V7版本的庫(kù),使用過(guò)程中發(fā)現(xiàn)網(wǎng)上關(guān)于V7版本的資料非常少,官網(wǎng)有文檔介紹其如何使用,但有些方面還不是很全面,而且網(wǎng)上現(xiàn)在的中文教程大多數(shù)是針對(duì)于V6版本的,V6和V7使用上的差異在有些方面還是挺大的,所以筆者也就想把自己在使用V7版本的庫(kù)的時(shí)候的一些心得記錄下來(lái)。
今天分享一個(gè)朋友的文章,關(guān)于DOS、匯編的內(nèi)容,以及雷軍的故事。這是一段古董代碼了,因?yàn)樵?994年,當(dāng)時(shí)我的一個(gè)老師也是做匯編項(xiàng)目,他跟我聊過(guò)的故事是,當(dāng)時(shí)是他跟一個(gè)前輩一起去現(xiàn)場(chǎng)給客戶看故障,調(diào)試,用的ARM匯編,當(dāng)時(shí)前輩是賺了2w,他賺到了6k的樣子。
這里,我將在平時(shí)工作過(guò)程中總結(jié)的內(nèi)存溢出的情況,以代碼案例的形式直觀的分享給大家,希望能夠?yàn)樾』锇閭儙?lái)實(shí)質(zhì)性的幫助。
多線程并發(fā)執(zhí)行時(shí)有很多同學(xué)捋不清楚調(diào)度的隨機(jī)性會(huì)導(dǎo)致哪些問(wèn)題,要知道如果訪問(wèn)臨界資源不加鎖會(huì)導(dǎo)致一些突發(fā)情況發(fā)生甚至死鎖。
前一段時(shí)間,小灰發(fā)布了上下兩篇關(guān)于股票買賣的算法題講解,激發(fā)了很多小伙伴的興趣。 這一次,小灰把這兩篇漫畫整合在一起,并且修改了其中的一些細(xì)節(jié)錯(cuò)誤。
叮。。。。。美團(tuán)來(lái)電。這次不是外賣而是電話面試。所報(bào)崗位為后端/服務(wù)端開發(fā),但是從我的復(fù)盤來(lái)看,這和 Java 后端開發(fā)的內(nèi)容差不多,除了部分的語(yǔ)言特性外,還是四大件基礎(chǔ)知識(shí)為重,下面我們來(lái)看看都問(wèn)了啥,小心下次面你的時(shí)候就有這些問(wèn)題哦~
函數(shù)宏,即包含多條語(yǔ)句的宏定義,其通常為某一被頻繁調(diào)用的功能的語(yǔ)句封裝,且不想通過(guò)函數(shù)方式封裝來(lái)降低額外的彈棧壓棧開銷。
大家都知道okhttp是一款由square公司開源的java版本http客戶端工具。實(shí)際上,square公司還開源了基于okhttp進(jìn)一步封裝的retrofit工具,用來(lái)支持通過(guò)接口的方式發(fā)起http請(qǐng)求。如果還在直接使用RestTemplate或者okhttp,或者基于它們封裝的HttpUtils,那么可以嘗試使用Retrofit。
函數(shù)宏,即包含多條語(yǔ)句的宏定義,其通常為某一被頻繁調(diào)用的功能的語(yǔ)句封裝,且不想通過(guò)函數(shù)方式封裝來(lái)降低額外的彈棧壓棧開銷。
宏的使用,大家經(jīng)常會(huì)用,但是一般只是簡(jiǎn)單定義一個(gè)符號(hào)常量,類似于 #define WHEEL_SCALE_MM?0.53f、 #define LOG_I(tag, text_fmt, ...) log_i(tag, text_fmt, ##__VA_ARGS__)? ,但是除此之外還有宏還有個(gè)##粘貼作用,可以配合#define這個(gè)常量表達(dá)式,可以做成一個(gè)宏定義指針函數(shù)列表,繼而查詢執(zhí)行函數(shù)。話不多說(shuō),我們開始今天的分享,首先還是會(huì)進(jìn)行一下常規(guī)的描述,再分享"##"粘貼的妙用。
在Linux下的開發(fā)中,printf打印調(diào)試信息默認(rèn)輸出到標(biāo)準(zhǔn)輸出 stdout (即屏幕/終端)中。我們也可以使用輸出重定向技術(shù)輸出到指定文件中,輸出重定向即是把原本要輸出到屏幕的信息寫入到指定文件中。
之前從應(yīng)用的角度給大家分享過(guò)Bootloader相關(guān)的文章,今天從底層原理來(lái)給大家描述ARM處理器如何編寫B(tài)ootloader。