freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

高質(zhì)量編寫cc讀書筆記精選5篇-資料下載頁

2024-10-13 17:50本頁面
  

【正文】 b=a)typedef union {int a_int1。double a_double。int a_int2。} a。typedef struct {a a1。char y。} b。struct {double c_double。b b1。a a2。} c。printf(“%dn”, sizeof(c))。答:有人說在VC下答案是32,我是linux系統(tǒng),沒法測試VC,但我知道在gcc下32位機默認(rèn)的對齊是4(pragma pack(4)),(little endian)還是降序(bigendian)答:bool IsBigendian(){unsigned short usData = 0x1122。unsigned char*pucData =(unsigned char*)amp。usData。return(*pucData == 0x22)。} id[sizeof(unsigned long)]。這個對嗎?為什么??答:對,這個 sizeof是編譯時運算符,編譯時就確定了,可以看成和機器有關(guān)的常量。void test1(){char string[10]。char* str1 = “0123456789”。strcpy(string, str1)。}答:數(shù)組越界。,int,float,指針變量 與“零值”比較的 if 語句(假設(shè)變量名為var)答案:bool型變量:if(!var)int型變量: if(var==0)float型變量:const float EPSINON = 。if((x =EPSINON)amp。amp。(x 指針變量:if(var==NULL),若處理器是Big_endian的,則返回0。若是Little_endian的,則返回1 答:和22題一樣,不過這里是另外一個方法。nt checkCPU(){{union w{int a。char b。} c。 = 1。return( == 1)。}},還是RunTime時建立的(此題我沒有答上)? 答:是在編譯時建立的。但在運行時刻才能知道究竟事調(diào)用那個函數(shù)。,判斷一個int型的整數(shù)是否是2的冪,即是否可以表示成2^X的形式(不可以用循環(huán))bool IsTwoPower(int s){return(s 0)amp。amp。((s amp。(s1))==0)。//如果是2的冪的話,在二進(jìn)制表示中只能有1個1 }第五篇:黑馬程序員C語言教程: CC++培訓(xùn)專家編寫高效C語言的四大絕招傳智播客C/C++培訓(xùn)專家:編寫高效C語言的四大絕招C語言是很多程序猿的入門語言,而且C語言也是一門用不過時的語言。編寫高效簡潔的C語言代碼,是許多軟件工程師追求的目標(biāo)。今天傳智播客C/C++培訓(xùn)專家針對編程工作中的一些體會和經(jīng)驗給大家做相關(guān)的闡述。第一招:以空間換時間計算機程序中最大的矛盾是空間和時間的矛盾,那么,從這個角度出發(fā)逆向思維來考慮程序的效率問題,我們就有了解決問題的第1招以空間換時間。比如說字符串的賦值: 方法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í)行的高效率。第二招:數(shù)學(xué)方法解決問題現(xiàn)在我們演繹高效C語言編寫的第二招采用數(shù)學(xué)方法來解決問題。數(shù)學(xué)是計算機之母,沒有數(shù)學(xué)的依據(jù)和基礎(chǔ),就沒有計算機的發(fā)展,所以在編寫程序的時候,采用一些數(shù)學(xué)方法會對程序的執(zhí)行效率有數(shù)量級的提高。舉例如下,求 1~100的和。方法C: int I , j。for(I = 1。I這個例子是我印象最深的一個數(shù)學(xué)用例,是我的計算機啟蒙老師考我的。當(dāng)時我只有小學(xué)三年級,可惜我當(dāng)時不知道用公式 N(N+1)/ 2 來解決這個問題。方法E循環(huán)了100次才解決問題,也就是說最少用了100個賦值,100個判斷,200個加法(I和j);而方法F僅僅用了1個加法,1 次乘法,1次除法。效果自然不言而喻。所以,現(xiàn)在我在編程序的時候,更多的是動腦筋找規(guī)律,最大限度地發(fā)揮數(shù)學(xué)的威力來提高程序運行的效率。第三招:使用位操作實現(xiàn)高效的C語言編寫的第三招——使用位操作。減少除法和取模的運算。在計算機程序中數(shù)據(jù)的位是可以操作的最小數(shù)據(jù)單位,理論上可以用“位運算”來完成所有的運算和操作。一般的位操作是用來控制硬件的,或者做數(shù)據(jù)變換使用,但是,靈活的位操作可以有效地提高程序運行的效率。舉例如下: 方法E int I,J。I = 257 /8。J = 456 % 32。方法F int I,J。I = 257 3。J = 456(456 4 運用這招需要注意的是,因為CPU的不同而產(chǎn)生的問題。比如說,在PC上用這招編寫的程序,并在PC上調(diào)試通過,在移植到一個16位機平臺上的時候,可能會產(chǎn)生代碼隱患。所以只有在一定技術(shù)進(jìn)階的基礎(chǔ)下才可以使用這招。用移位實現(xiàn)乘除法運算a=a*4。b=b/4??梢愿臑椋篴=ab=b2。說明:除2 = 右移1位 乘2 = 左移1位除4 = 右移2位 乘4 = 左移2位除8 = 右移3位 乘8 = 左移3位......通常如果需要乘以或除以2的n次方,都可以用移位的方法代替。大部分的C編譯器,用移位的方法得到代碼比調(diào)用乘除法子程序生成的代碼效率高。第四招:匯編嵌入高效C語言編程的必殺技,第四招——嵌入?yún)R編。“在熟悉匯編語言的人眼里,C語言編寫的程序都是垃圾”。這種說法雖然偏激了一些,但是卻有它的道理。匯編語言是效率最高的計算機語言,但是,不可能靠著它來寫一個操作系統(tǒng)吧?所以,為了獲得程序的高效率,我們只好采用變通的方法嵌入?yún)R編,混合編程。舉例如下,將數(shù)組一賦值給數(shù)組二,要求每一字節(jié)都相符。char string1[1024],string2[1024]。方法G int i。for(i =0。i{ MOV R0,string1 MOV R1,string2 MOV R2,0 loop: LDMIA R0!, [R3R11] STMIA R1!, [R3R11] ADD R2,R2,8 CMP R2, 400 BNE loop } endif 方法G是最常見的方法,使用了1024次循環(huán);方法H則根據(jù)平臺不同做了區(qū)分,在ARM平臺下,用嵌入?yún)R編僅用128次循環(huán)就完成了同樣的操作。這里有朋友會說,為什么不用標(biāo)準(zhǔn)的內(nèi)存拷貝函數(shù)呢?這是因為在源數(shù)據(jù)里可能含有數(shù)據(jù)為0的字節(jié),這樣的話,標(biāo)準(zhǔn)庫函數(shù)會提前結(jié)束而不會完成我們要求的操作。這個例程典型應(yīng)用于LCD數(shù)據(jù)的拷貝過程。根據(jù)不同的CPU,熟練使用相應(yīng)的嵌入?yún)R編,可以大大提高程序執(zhí)行的效率。雖然是必殺技,但是如果輕易使用會付出慘重的代價。這是因為,使用了嵌入?yún)R編,便限制了程序的可移植性,使程序在不同平臺移植的過程中,臥虎藏龍,險象環(huán)生!同時該招數(shù)也與現(xiàn)代軟件工程的思想相違背,只有在迫不得已的情況下才可以采用。今天分享到這里,大家有遇到什么問題可以向“傳智播客C/C++培訓(xùn)專家”留言哦!
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1