C 語言嵌入式系統(tǒng)編程修煉之六:性能優(yōu)化 一、 使用宏定義 在C 語言中,宏是產(chǎn)生內(nèi)嵌代碼的唯一方法。對于嵌入式系統(tǒng)而言,為了能達(dá)到性能要求,宏是一種很好的代替函數(shù)的方法。 寫一個"標(biāo)準(zhǔn)"宏MIN ,這個宏輸入兩個參數(shù)并返回較小的一個:錯誤做法: #define MIN(A,B) ( A <= B ? A : B ) 正確做法: #define MIN(A,B) ((A)<= (B) ? (A) : (B) ) 對于宏,我們需要知道三點: (1)宏定義"像"函數(shù); (2)宏定義不是函數(shù),因而需要括上所有"參數(shù)"; (3)宏定義可能產(chǎn)生副作用。 下面的代碼: least = MIN(*p++, b); 將被替換為: ( (*p++) <= (b) ?(*p++) b) )發(fā)生的事情無法預(yù)料。 因而不要給宏定義傳入有副作用的"參數(shù)"。
|