(1)“=”和"=="
為了避免“=”和“==”用錯(cuò),有經(jīng)驗(yàn)的程序員一般將數(shù)值寫在符號(hào)的左邊。例如:if (2 == x){},這樣可以讓編譯器直接產(chǎn)生報(bào)錯(cuò)提示。
(2)復(fù)合賦值運(yùn)算符(+=、*=、-=)
避免符號(hào)放置位置出錯(cuò)。
(3)指針加減運(yùn)算
指針變量+1,加1后的結(jié)果比原結(jié)果多了指針變量所指向數(shù)據(jù)類型的長(zhǎng)度值。例如:int *p = (int *)0x00001000,p = p + 1后,p = 0x00001004。
對(duì)連續(xù)RAM初始化零操作:unsigned int * pRAMaddr ; for(pRAMaddr = Startaddr; pRAMaddr = Endaddr; pRAMaddr += 4){pRAMaddr = 0x00000000;},pRAMaddr += 4的操作實(shí)際上使pRAMaddr增加了4 * sizeof(int) = 16字節(jié)的RAM空間,每一次for循環(huán)只會(huì)將4個(gè)字節(jié)初始化為零,其余12個(gè)字節(jié)為隨機(jī)數(shù)。
(4)數(shù)組名和指針
只有數(shù)組名被作為函數(shù)形參的時(shí)候,數(shù)組名才可以被認(rèn)為是指針。此時(shí),不要針對(duì)指針應(yīng)用sizeof操作符,否則容易有風(fēng)險(xiǎn)。例如:
void ClearRAM(char array[ ]){ }
(5)各種進(jìn)制(十進(jìn)制、八進(jìn)制、十六進(jìn)制)
各種進(jìn)制簡(jiǎn)單理解是數(shù)值的不同表示形式,嵌入式軟件開發(fā)過(guò)程中,下位機(jī)用什么進(jìn)制,與之通信的上位機(jī)就用什么進(jìn)制接收,char類型的數(shù)據(jù)表示一個(gè)字節(jié),計(jì)算機(jī)處理數(shù)據(jù)的最小單位是字節(jié),串口通信時(shí)可以將數(shù)據(jù)定義成char類型,即一個(gè)字節(jié)。-基于Mbed庫(kù)開發(fā)。
(6)取十六進(jìn)制數(shù)的高八位、低八位
例:0xABCD,取低八位:0xABCD & 0xFF,取高八位:(0xABCD >> 8) & 0xFF;0xABCD:16位數(shù)據(jù),二進(jìn)制轉(zhuǎn)換成十六進(jìn)制時(shí),用二進(jìn)制的4位表示十六進(jìn)制的1位。
(未完待續(xù)。。。)