- 相關(guān)推薦
c語言空間換時間優(yōu)化代碼的技巧方法
C語言8個實用方法代碼優(yōu)化,選擇合適的算法和數(shù)據(jù)結(jié)構(gòu),選擇一種合適的數(shù)據(jù)結(jié)構(gòu)很重要,如果在一堆隨機存放的數(shù)中使用了大量的插入和刪除指令,那使用鏈表要快得多。下面是小編整理的c語言空間換時間優(yōu)化代碼的技巧方法,僅供參考,大家一起來看看吧。
比如說字符串的賦值:
方法A:通常的辦法
#define LEN 32
char string1 [LEN];
memset (string1,0,LEN);
strcpy (string1,"This is a example!!");
方法B:
const char string2[LEN] ="This is a example!";
char * cp;
cp = string2 ;
使用的時候可以直接用指針來操作。
從上面的例子可以看出,A和B的效率是不能比的。在同樣的存儲空間下,B直接使用指針就可以操作了,而A需要調(diào)用兩個字符函數(shù)才能完成。B的缺點在于靈活性沒有A好。在需要頻繁更改一個字符串內(nèi)容的時候,A具有更好的靈活性;如果采用方法B,則需要預(yù)存許多字符串,雖然占用了大量的內(nèi)存,但是獲得了程序執(zhí)行的高效率。
如果系統(tǒng)的實時性要求很高,內(nèi)存還有一些,那我推薦你使用該招數(shù)。
方法C:
#define bwMCDR2_ADDRESS 4
#define bsMCDR2_ADDRESS 17
int BIT_MASK (int_bf)
{
return ((IU<<(bw##_bf))-1)<<(bs##_bf);
}
void SET_BITS(int_dst,int_bf,int_val)
{
_dst=((_dst) & ~ (BIT_MASK(_bf)))I
(((_val)<<<(bs##_bf))&(BIT_MASK(_bf)))
}
SET_BITS(MCDR2,MCDR2_ADDRESS,RegisterNumb
er);
【c語言空間換時間優(yōu)化代碼的技巧方法】相關(guān)文章:
嵌入式C語言優(yōu)化技巧11-10
20條PHP代碼優(yōu)化技巧05-06
嵌入式C語言性能優(yōu)化方法11-26
Dreamweaver清理網(wǎng)頁代碼的方法技巧03-28
10個經(jīng)典的C語言面試基礎(chǔ)算法及代碼12-05
C語言選擇排序算法及實例代碼11-25
C語言插入排序算法及實例代碼12-05
C語言左右法則的技巧03-27