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

正文內(nèi)容

c語言格式書寫規(guī)范(編輯修改稿)

2025-05-04 05:22 本頁面
 

【文章內(nèi)容簡介】 tValue。//靜態(tài)變量…}z 【規(guī)則325】如果不得已需要全局變量,則使全局變量加前綴g_(表示global)。例如:int g_howManyPeople。 //全局變量int g_howMuchMoney。 //全局變量z 【規(guī)則326】類的數(shù)據(jù)成員加前綴m_(表示member),這樣可以避免數(shù)據(jù)成員與成員函數(shù)的參數(shù)同名。例如:Void Object::SetValue(int width, int height){m_width = width。m_height = height。} z 【規(guī)則327】為了防止某一軟件庫中的一些標(biāo)識符和其它軟件庫中的沖突,可以為各種標(biāo)識符加上能反映軟件性質(zhì)的前綴。例如三維圖形標(biāo)準(zhǔn)OpenGL的所有庫函數(shù)均以gl開頭,所有常量(或宏定義)均以GL開頭。 第4章表達(dá)式和基本語句表達(dá)式和語句都屬于C的短語結(jié)構(gòu)語法。它們看似簡單,但使用時隱患比較多。本章歸納了正確使用表達(dá)式和語句的一些規(guī)則與建議。C語言的運(yùn)算符有數(shù)十個,運(yùn)算符的優(yōu)先級與結(jié)合律如表41所示。注意一元運(yùn)算符+ *的優(yōu)先級高于對應(yīng)的二元運(yùn)算符。優(yōu)先級運(yùn)算符結(jié)合律從高到低排列() [] .從左至右! ~ ++ (類型)sizeof+ * amp。從右至左* / %從左至右+ 從左至右 從左至右 = =從左至右== !=從左至右amp。從左至右^從左至右|從左至右amp。amp。從左至右||從右至左?:從右至左= += = *= /= %= amp。= ^=|= = =從左至右表41運(yùn)算符的優(yōu)先級與結(jié)合律 【規(guī)則411】如果代碼行中的運(yùn)算符比較多,用括號確定表達(dá)式的操作順序,避免使用默認(rèn)的優(yōu)先級。由于將表41熟記是比較困難的,為了防止產(chǎn)生歧義并提高可讀性,應(yīng)當(dāng)用括號確定表達(dá)式的操作順序。例如:word = (high8)|low if ((a|b)amp。amp。(aamp。c)) 如a=b=c=0這樣的表達(dá)式稱為復(fù)合表達(dá)式。允許復(fù)合表達(dá)式存在的理由是:(1)書寫簡潔;(2)可以提高編譯效率。但要防止濫用復(fù)合表達(dá)式?!疽?guī)則421】不要編寫太復(fù)雜的復(fù)合表達(dá)式。例如:i=a=bamp。amp。cdamp。amp。c+f=g+h。//復(fù)合表達(dá)式過于復(fù)雜【規(guī)則422】不要有多用途的復(fù)合表達(dá)式。例如:d=(a=b+c)+r。該表達(dá)式既求a值又求d值。應(yīng)該拆分為兩個獨(dú)立的語句:a = b + c。d = a + r?!疽?guī)則423】不要把程序中的復(fù)合表達(dá)式與“真正的數(shù)學(xué)表達(dá)式”混淆。例如:if(abc) //abc是數(shù)學(xué)表達(dá)式而不是程序表達(dá)式并不表示if ((ab)amp。amp。(bc))而是成了令人費(fèi)解的if((ab)c) if語句是C語言中最簡單、最常用的語句,然而很多程序員用隱含錯誤的方式寫if語句。本節(jié)以“與零值比較”為例,展開討論。z 【規(guī)則431】不可將布爾變量直接與TRUE、FALSE或者0進(jìn)行比較。根據(jù)布爾類型的語義,零值為“假”(記為FALSE),任何非零值都是“真”(記為TRUE)。TRUE的值究竟是什么并沒有統(tǒng)一的標(biāo)準(zhǔn)。例如VisualC++將TRUE定義為1,而VisualBasic則將TRUE定義為1。假設(shè)布爾變量名字為flag,它與零值比較的標(biāo)準(zhǔn)if語句如下:if (flag)//表示flag為真 if (!flag)//表示flag為假其它的用法都屬于不良風(fēng)格,例如:if(flag==TRUE)if(flag==1)if(flag==FALSE)if(flag==0) z 【規(guī)則432】應(yīng)當(dāng)將整型變量用“==”或“!=”直接與0比較。假設(shè)整型變量的名字為value,它與零值比較的標(biāo)準(zhǔn)if語句如下:if(value==0)if(value!=0)不可模仿布爾變量的風(fēng)格而寫成if(value) //會讓人誤解value是布爾變量if(!value)z 【規(guī)則433】不可將浮點變量用“==”或“!=”與任何數(shù)字比較。千萬要留意,無論是float還是double類型的變量,都有精度限制。所以一定要避免將浮點變量用“==”或“!=”與數(shù)字比較,應(yīng)該設(shè)法轉(zhuǎn)化成“=”或“=”形式。假設(shè)浮點變量的名字為x,應(yīng)當(dāng)將if(x==)//隱含錯誤的比較轉(zhuǎn)化為if((x=EPSINON)amp。amp。(x=EPSINON))其中EPSINON是允許的誤差(即精度)。z 【規(guī)則434】應(yīng)當(dāng)將指針變量用“==”或“!=”與NULL比較。指針變量的零值是“空”(記為NULL)。盡管NULL的值與0相同,但是兩者意義不同。假設(shè)指針變量的名字為p,它與零值比較的標(biāo)準(zhǔn)if語句如下:if(p==NULL) //p與NULL顯式比較,強(qiáng)調(diào)p是指針變量if(p!=NULL)不要寫成if(p==0) //容易讓人誤解p是整型變量if(p!=0)或者if(p) //容易讓人誤解p是布爾變量if(!p)有時候我們可能會看到if(NULL==p)這樣古怪的格式。不是程序?qū)戝e了,是程序員為了防止將if(p==NULL)誤寫成if(p=NULL),而有意把p和NULL顛倒。編譯器認(rèn)為if(p=NULL)是合法的,但是會指出if(NULL=p)是錯誤的,因為NULL不能被賦值。程序中有時會遇到if/else/return的組合,應(yīng)該將如下不良風(fēng)格的程序if(condition)returnx。returny。改寫為if(condition){returnx。}else{returny。}或者改寫成更加簡練的return(condition?x:y)。C循環(huán)語句中,for語句使用頻率最高,while語句其次,do語句很少用。本節(jié)重點論述循環(huán)體的效率。提高循環(huán)體效率的基本辦法是降低循環(huán)體的復(fù)雜性。z 【建議441】在多重循環(huán)中,如果有可能,應(yīng)當(dāng)將最長的循環(huán)放在最內(nèi)層,最短的循環(huán)放在最外層,以減少CPU跨切循環(huán)層的次數(shù)。例如示例44(b)的效率比示例44(a)的高。for (row=0。 row100。 row++){for (col=0。 col5。 col++){fum = sum+a[row][col]。}}示例44(a)低效率:長循環(huán)在最外層for (col=0。 col5。 col++){for (row=0。 row100。 row++){fum = sum+a[row][col]。}}示例44(b)高效率:長循環(huán)在最內(nèi)層z 【建議442】如果循環(huán)體內(nèi)存在邏輯判斷,并且循環(huán)次數(shù)很大,宜將邏輯判斷移到循環(huán)體的外面。示例44(c)的程序比示例44(d)多執(zhí)行了N1次邏輯判斷。并且由于前者老要進(jìn)行邏輯判斷,打斷了循環(huán)“流水線”作業(yè),使得編譯器不能對循環(huán)進(jìn)行優(yōu)化處理,降低了效率。如果N非常大,最好采用示例44(d)的寫法,可以提高效率。如果N非常小,兩者效率差別并不明顯,采用示例44(c)的寫法比較好,因為程序更加簡潔。 for (i=0。 iN。 i++){if (condition{DoSomething()。}else{DoOtherthing()。}}表44(c)效率低但程序簡潔if(condition){for(i=0。iN。i++)DoSomething()。}else{for(i=0。iN。i++)DoOtherthing()。}表44(d)效率高但程序不簡潔z 【規(guī)則451】不可在for循環(huán)體內(nèi)修改循環(huán)變量,防止for循環(huán)失去控制。z 【建議451】建議for語句的循環(huán)控制變量的取值采用“半開半閉區(qū)間”寫法。示例45(a)中的x值屬于半開半閉區(qū)間“0=xN”,起點到終點的間隔為N,循環(huán)次數(shù)為N。示例45(b)中的x值屬于閉區(qū)間“0=x=N1”,起點到終點的間隔為N1,循環(huán)次數(shù)為N。相比之下,示例45(a)的寫法更加直觀,盡管兩者的功能是相同的。for(intx=0。xN。x++){…}示例45(a)循環(huán)變量屬于半開半閉區(qū)間for(intx=0。x=N1。x++){…}示例45(b)循環(huán)變量屬于閉區(qū)間switch是多分支選擇語句,而if語句只有兩個分支可供選擇。雖然可以用嵌套的if語句來實現(xiàn)多分支選擇,但那樣的程序冗長難讀。這是switch語句存在的理由。switch語句的基本格式是:switch(variable){case value1: {…break。}case value2: {…break。}…default: {…break。}}z 【規(guī)則461】每個case語句的結(jié)尾不要忘了加break,否則將導(dǎo)致多個分支重疊(除非有意使多個分支重疊)。z 【規(guī)則462】不要忘記最后那個default分支。即使程序真的不需要default處理,也應(yīng)該保留語句default:break。這樣做并非多此一舉,而是為了防止別人誤以為你忘了default處理。自從提倡結(jié)構(gòu)化設(shè)計以來,goto就成了有爭議的語句。首先,由于goto語句可以靈活跳
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1