(1)“=”和"=="
為了避免“=”和“==”用錯艺蝴,有經(jīng)驗的程序員一般將數(shù)值寫在符號的左邊膳汪。例如:if (2 == x){},這樣可以讓編譯器直接產(chǎn)生報錯提示泽西。
(2)復(fù)合賦值運算符(+=晃痴、*=残吩、-=)
避免符號放置位置出錯。
(3)指針加減運算
指針變量+1倘核,加1后的結(jié)果比原結(jié)果多了指針變量所指向數(shù)據(jù)類型的長度值。例如:int *p = (int *)0x00001000即彪,p = p + 1后紧唱,p = 0x00001004。
對連續(xù)RAM初始化零操作:unsigned int * pRAMaddr ; for(pRAMaddr = Startaddr; pRAMaddr = Endaddr; pRAMaddr += 4){pRAMaddr = 0x00000000;}隶校,pRAMaddr += 4的操作實際上使pRAMaddr增加了4 * sizeof(int) = 16字節(jié)的RAM空間漏益,每一次for循環(huán)只會將4個字節(jié)初始化為零,其余12個字節(jié)為隨機數(shù)深胳。
(4)數(shù)組名和指針
只有數(shù)組名被作為函數(shù)形參的時候绰疤,數(shù)組名才可以被認為是指針。此時舞终,不要針對指針應(yīng)用sizeof操作符轻庆,否則容易有風險。例如:
void ClearRAM(char array[ ]){ }
(5)各種進制(十進制敛劝、八進制余爆、十六進制)
各種進制簡單理解是數(shù)值的不同表示形式,嵌入式軟件開發(fā)過程中夸盟,下位機用什么進制蛾方,與之通信的上位機就用什么進制接收,char類型的數(shù)據(jù)表示一個字節(jié),計算機處理數(shù)據(jù)的最小單位是字節(jié)桩砰,串口通信時可以將數(shù)據(jù)定義成char類型拓春,即一個字節(jié)。-基于Mbed庫開發(fā)亚隅。
(6)取十六進制數(shù)的高八位痘儡、低八位
例:0xABCD,取低八位:0xABCD & 0xFF枢步,取高八位:(0xABCD >> 8) & 0xFF沉删;0xABCD:16位數(shù)據(jù),二進制轉(zhuǎn)換成十六進制時醉途,用二進制的4位表示十六進制的1位矾瑰。
(未完待續(xù)。隘擎。殴穴。)