DDR5自問世以來就一直備受爭議,價格昂貴并性能提升不高,隨著全新的13代英特爾酷睿和AMD銳龍7000的推出,DDR5的強大性能也得到真正的釋放,作為美光旗下垂直整合消費品牌的英睿達也推出自家的DDR5內(nèi)存。
另外,有時候優(yōu)先級還與C語言編譯器有關,同一個表達式在不同的平臺上,可能表達的意義是不同的。所以,為了代碼的可植移性、正確性以及可讀性,振南強烈建議多用一些()。
我們本希望循環(huán)5次,然后結束,但是實際情況是陷入了死循環(huán)。這種錯誤在實際開發(fā)中,還比較難發(fā)現(xiàn)。其原因在于i的類型,無符號整型是永遠不小于0的。我們需要將i的類型改為有符號型。
以上的例子可能有些雞肋,“一個if能搞定的事情,我為什么要用for?”,沒錯。我們這里主要是為了解釋for循環(huán)的靈活用法。深入理解了它的本質(zhì),有助于我們在實際開發(fā)中讓工作事半功倍,以及看懂別人的代碼。
直接操作數(shù)據(jù)?我們來舉個例子:取一個整型數(shù)的相反數(shù)。一般的實現(xiàn)方法是這樣的:
近日,“海關發(fā)布”官方微博發(fā)布了一段視頻,曝光了一起走私CPU進境案。
近幾年,欠薪、拖欠供應商貨款,以及被申請破產(chǎn)重整、被列為被執(zhí)行人或失信被執(zhí)行人等一系列的負面消息頻頻出現(xiàn)在奇點汽車的身畔。
近日,上海公安局普陀分局成功破獲一起案件,并在程序員圈內(nèi)引起了不小轟動。因為該案件涉及的金額高達1.5億元,而這僅僅是在半年時間內(nèi)的非法獲利。要知道,這樣的賺錢速度放在整個互聯(lián)網(wǎng)界也都是相當炸裂的!
指令集(ISA)是硬件和軟件之間的接口,是整個計算系統(tǒng)中最為重要的接口。而選擇開放的指令集,也就意味著打開了軟件和硬件之間的連接接口,打開了一種新的商業(yè)模式。如果現(xiàn)在要從零開始構建一個應用,要選擇一個全新運算平臺,那么選擇RISC-V會是最佳的選擇。
很多人不能很好的使用和處理浮點,其主要根源在于對它的表達與存儲方式不是很理解。最典型的例子就是經(jīng)常有人問我:“如何使用串口來發(fā)送一個浮點數(shù)?”
在實際項目中,我們經(jīng)常需要提取一個數(shù)值的某些位的數(shù)碼,比如用數(shù)碼管來顯示數(shù)值或?qū)⒁粋€數(shù)值轉(zhuǎn)成字符串,都會涉及到這一操作。
很多時候我們需要進行長字符串的拆分。在振南的研發(fā)經(jīng)歷中,使用到這種操作的最典型的應用場合有三個。
C語言中要表達一個字節(jié)數(shù)據(jù)序列(內(nèi)存中連續(xù)存儲的若干個字節(jié)),我們可以使用字節(jié)數(shù)組,如unsigned char array[10]={0,1,2,3,4,5,6,7,8,9}。其實字符串,本質(zhì)上也是一個字節(jié)序列,但是通常情況下它所存儲的字節(jié)的值均為ASCII中可打印字符的碼值,如’A’、’ ‘、’|’等。那在字符串中是否也可以出現(xiàn)其它的值呢?這樣,我們就可以用字符串的形式來表達一個字節(jié)序列了。很多時候,它可能比字節(jié)數(shù)組要方便一些。字符串中的轉(zhuǎn)義符就是用來干這個的。請看如下程序:
字符串是C語言中最基礎的概念,也是最常被用到的。在嵌入式開發(fā)中,我們經(jīng)常要將一些字符串通過串口顯示到串口助手或調(diào)試終端上,作為信息提示,以便讓我們了解程序的運行情況;或者是將一些常量的值轉(zhuǎn)為字符串,來顯示到液晶等顯示設備上。
中斷機制在單片機及嵌入式系統(tǒng)中是重中之重,我們必須深入理解。首先我們要明白一點:CPU執(zhí)行指令代碼,并非一直順序地逐條執(zhí)行,而是可能突然跳到某段代碼上去的。因為這段代碼的優(yōu)先級更高,或者說它更加緊迫,CPU必須暫時放下手上的的工作,立即去執(zhí)行它,否則就可能導致不良的后果,甚至是嚴重的事故。這個“突然跳轉(zhuǎn)”有時是可以人為預見的,或者是設計人員故意使然,但有些時候卻是隨機的,無法事先斷定它發(fā)生的具體時間。這就是“中斷”最為通俗的表述,如圖1.22所示。