使用自增自減運算提高效率
在使用到加一和減一操作時盡量使用增量和減量操作符,因為增量符語句比賦值語句更快,原因在于對大多數(shù)CPU來說,對內(nèi)存字的增、減量操作不必明顯地使用取內(nèi)存和寫內(nèi)存的指令,比如下面這條語句:
x=x+1;
在大多數(shù)微機匯編語言為例,產(chǎn)生的代碼類似于:
move A,x ;把x從內(nèi)存取出存入累加器A
add A,1 ;累加器A加1
store x ;把新值存回x
而如果使用增量操作符,則會有相對應(yīng)的指令支持,生成的代碼如下:
incr x ;x加1
顯然,不用取指令和存指令,增、減量操作執(zhí)行的速度加快,同時長度也縮短了。
同樣的,復(fù)合賦值表達(dá)式 ( 如 a -= 1 及 a += 1 等 ) 都能夠生成高質(zhì)量的程序代碼。
提取公共表達(dá)式
在某些情況下,C編譯器不能從浮點表達(dá)式中提出公共的子表達(dá)式,因為這意味著相當(dāng)于對表達(dá)式重新排序。
然而編譯器在提取公共子表達(dá)式前不能按照代數(shù)的等價關(guān)系重新安排表達(dá)式。這時,程序員需要手動地提出公共的子表達(dá)式。
不好的代碼:
float a, b, c, d, e, f;
...
e = b * c / d;
f = b / d * a;
推薦的代碼:
float a, b, c, d, e, f;
...
const float t = (b / d);
e = c * t;
f = a * t;
另一個例子,不好的代碼:
float a, b, c, e, f;
...
e = a / c;
f = b / c;
推薦的代碼:
float a, b, c, e, f;
。。。
const float t = (1.0f / c);
e = a * t;
f = b * t;
-
C語言
+關(guān)注
關(guān)注
180文章
7628瀏覽量
139755 -
代碼
+關(guān)注
關(guān)注
30文章
4880瀏覽量
70021 -
編譯器
+關(guān)注
關(guān)注
1文章
1652瀏覽量
49740
發(fā)布評論請先 登錄
相關(guān)推薦
明德?lián)P視頻分享點撥FPGA課程--第二十章??提高效率技巧
Python常用自增運算寫法
LTC7803如何提高效率和EMI標(biāo)準(zhǔn)合規(guī)性?
如何使用UCC28056優(yōu)化過渡模式PFC設(shè)計來提高效率和待機功耗?
keil5提高效率的技巧
卡套管的使用有助于提高效率并達(dá)到更合格的標(biāo)準(zhǔn)
LFPAK88是提高效率的捷徑

NIKKEI邏輯整合Brocade SAN以提高效率和安全性

提高效率的DC電源模塊設(shè)計技巧

D類放大器中用于提高效率的 Y 橋應(yīng)用說明

評論