日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
有關(guān)C++優(yōu)化代碼問題詳細(xì)說明

C++也支持面向過程的程序設(shè)計,不是一個純正的面向?qū)ο蟮恼Z言,它保持了C的簡潔、高效和接近匯編語言等特點(diǎn),引入了類的機(jī)制,最初的C++被稱為“帶類的C”,好了,那么就現(xiàn)在開始進(jìn)行C++優(yōu)化代碼的講解吧。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、龍?zhí)毒W(wǎng)站維護(hù)、網(wǎng)站推廣。

為了讓編譯器產(chǎn)生更好的C++優(yōu)化代碼(比如說產(chǎn)生3DNow! 或SSE指令的代碼),必須確定浮點(diǎn)型變量和表達(dá)式是 float 型的。要特別注意的是,以 ";F"; 或 ";f"; 為后綴(比如:3.14f)的浮點(diǎn)常量才是 float 型,否則默認(rèn)是 double 型。為了避免 float 型參數(shù)自動轉(zhuǎn)化為 double,請?jiān)诤瘮?shù)聲明時使用 float。

使用32位的數(shù)據(jù)類型

編譯器有很多種,但它們都包含的典型的32位類型是:int,signed,signed int,unsigned,unsigned int,long,signed long,long int,signed long int,unsigned long,unsigned long int。盡量使用32位的數(shù)據(jù)類型,因?yàn)樗鼈儽?6位的數(shù)據(jù)甚至8位的數(shù)據(jù)更有效率。 #t#

明智使用有符號整型變量

在很多情況下,你需要考慮整型變量是有符號還是無符號類型的。比如,保存一個人的體重數(shù)據(jù)時不可能出現(xiàn)負(fù)數(shù),所以不需要使用有符號類型。但是,如果是要保存溫度數(shù)據(jù),就必須使用到有符號的變量。

在許多地方,考慮是否使用有符號的變量是必要的。在一些情況下,有符號的運(yùn)算比較快;但在一些情況下卻相反。比如:整型到浮點(diǎn)轉(zhuǎn)化時,使用大于16位的有符號整型比較快。因?yàn)閤86構(gòu)架中提供了從有符號整型轉(zhuǎn)化到浮點(diǎn)型的指令,但沒有提供從無符號整型轉(zhuǎn)化到浮點(diǎn)的指令。看看編譯器產(chǎn)生的匯編代碼,不好的代碼:

 
 
 
  1. double x; mov [foo + 4], 0 
  2. unsigned int i; mov eax, i 
  3. x = i; mov [foo], eax 
  4. flid qword ptr [foo] 
  5. fstp qword ptr [x]  

上面的代碼比較慢。不僅因?yàn)橹噶顢?shù)目比較多,而且由于指令不能配對造成的FLID指令被延遲執(zhí)行。最好用以下C++優(yōu)化代碼代替,推薦的C++優(yōu)化代碼:

 
 
 
  1. double x; mov [foo + 4], 0 
  2. unsigned int i; mov eax, i 
  3. x = i; mov [foo], eax 
  4. flid qword ptr [foo] 
  5. fstp qword ptr [x]  

在整數(shù)運(yùn)算中計算商和余數(shù)時,使用無符號類型比較快。以下這段典型的代碼是編譯器產(chǎn)生的32位整型數(shù)除以4的代碼,不好的代碼 推薦的代碼:

 
 
 
  1. int i; mov eax, i 
  2. ii = i / 4; cdq 
  3. and edx, 3 
  4. add eax, edx 
  5. sar eax, 2 
  6. mov i, eax 

在編程中,我們常常需要用到無限循環(huán),常用的兩種方法是while (1) 和 for (;;)。這兩種方法效果完全一樣,但那一種更好呢?然我們看看它們編譯后的C++優(yōu)化代碼:

 
 
 
  1. int i; mov eax, i 
  2. ii = i / 4; cdq 
  3. and edx, 3 
  4. add eax, edx 
  5. sar eax, 2 
  6. mov i, eax 

網(wǎng)頁名稱:有關(guān)C++優(yōu)化代碼問題詳細(xì)說明
瀏覽路徑:http://www.5511xx.com/article/dphsjgs.html