成人黄色在线网站 I 国产aa免费 I 中文字幕免费高清 I 国产三级影院 I 日韩欧美三级在线观看 I 久久久国产精品麻豆a片 I 欧美与黑人午夜性猛交久久久 I 91国产精品视频在线 I 国产美女狂喷水潮在线播放 I 黄页免费网站在线观看 I 欧美日韩激情视频 I 午夜理论无码片在线观看免费 I 深夜爽爽动态图无遮无挡 I 国精产品一区一区三区有限公司杨 I 天天操天天舔天天爽 I 免费看日本黄色片 I 成人va在线 I 日韩中文字幕在线观看 I 婷婷综合网 I 97视频免费观察看 I 色月丁香 I 日韩视频一二三 I 男女黄色毛片 I 美女疯狂连续喷潮视频 I 亚洲日本va一区二区sa I 欧美日韩视频区 I 毛片网在线 I 欧美一本在线 I 少妇一级淫片免费放香蕉 I avav在线看 I 久久精品亚洲中文字幕无码网站 I 天堂av在线中文在线新版 I 电影一区 电影二区 I 色av吧 中文字幕 I 国产精品伊人色

歡迎來(lái)到培訓(xùn)無(wú)憂網(wǎng)!

全國(guó)切換

咨詢熱線 400-001-5729

位置:培訓(xùn)無(wú)憂網(wǎng) > 新聞資訊 > 電腦/IT > c語(yǔ)言 >  C語(yǔ)言最好的編程方式

C語(yǔ)言最好的編程方式

來(lái)源:培訓(xùn)無(wú)憂網(wǎng)-云朵 發(fā)布人:云朵

2021-12-02 11:51:35|已瀏覽:423次

C語(yǔ)言最好的編程方式

    我們鼓勵(lì)在編程時(shí)應(yīng)有清晰的哲學(xué)思維,而不是給予硬性規(guī)則。我并不希望你們能認(rèn)可所有的東西,因?yàn)樗鼈冎皇怯^點(diǎn),觀點(diǎn)會(huì)隨著時(shí)間的變化而變化。可是,如果不是直到現(xiàn)在把它們寫(xiě)在紙上,長(zhǎng)久以來(lái)這些基于許多經(jīng)驗(yàn)的觀點(diǎn)一直積累在我的頭腦中。因此希望這些觀點(diǎn)能幫助你們,了解如何規(guī)劃一個(gè)程序的細(xì)節(jié)。(我還沒(méi)有看到過(guò)一篇講關(guān)于如何規(guī)劃整個(gè)事情的好文章,不過(guò)這部分可以是課程的一部分)要是能發(fā)現(xiàn)它們的特質(zhì),那很好;要是不認(rèn)同的話,那也很好。但如果能啟發(fā)你們思考為什么不認(rèn)同,那樣就更好了。在任何情況下,都不應(yīng)該照搬我所說(shuō)的方式進(jìn)行編程;要用你認(rèn)為最好的編程方式來(lái)嘗試完成程序。請(qǐng)一以貫之而且毫不留情的這么做。

01、排版問(wèn)題

    程序是一種出版物。意味著程序員們會(huì)先閱讀(也許是幾天、幾周或幾年后的你自己閱讀),最后才輪到機(jī)器。機(jī)器的快樂(lè)就是程序能編譯,機(jī)器才不在乎程序?qū)懙挠卸嗝雌粒墒侨藗儜?yīng)該保持程序的美觀。有時(shí)人們會(huì)過(guò)度關(guān)心:用漂亮的打印機(jī)呆板地打印出漂亮的輸出,而這些輸出只是將所有介詞用英文文本以粗體字體凸顯出來(lái),都是些與程序無(wú)關(guān)的細(xì)節(jié)。雖然有很多人認(rèn)為程序就應(yīng)該像 Algol.68 所描述的一樣(有些系統(tǒng)甚至要求照搬該風(fēng)格編寫(xiě)程序),可清晰的程序不會(huì)因?yàn)檫@樣的呈現(xiàn)而變得更清晰,只會(huì)使糟糕的程序變得更可笑。
    對(duì)于清晰的程序來(lái)說(shuō),排版規(guī)范一向都是至關(guān)重要的。當(dāng)然,眾所周知最有用的是縮進(jìn),但是當(dāng)墨水遮蓋了意圖時(shí),就會(huì)控制住排版。因此即便堅(jiān)持使用簡(jiǎn)單的舊打字機(jī)輸出,也該意識(shí)到愚蠢的排版。避免過(guò)度修飾,比如保持注釋的簡(jiǎn)潔和靈活。通過(guò)程序整齊一致地說(shuō)出想表達(dá)的。接著往下看。

02、變量命名

    對(duì)于變量名稱,長(zhǎng)度并不是名稱的價(jià)值所在,清晰的表達(dá)才是。不常用的全局變量可能會(huì)有一個(gè)很長(zhǎng)的名稱,像 maxphysaddr。在循環(huán)中每一行所使用的數(shù)組索引,并不需要取一個(gè)比 i 更詳盡的名字。取 index 或者 elementnumber 會(huì)輸入更多的字母(或調(diào)用文本編輯器),并且會(huì)遮蓋住計(jì)算的細(xì)節(jié)。當(dāng)變量名稱很長(zhǎng)時(shí),很難明白發(fā)生了什么。現(xiàn)實(shí)例子中的問(wèn)題會(huì)變得更糟。所以僅需把索引當(dāng)成符號(hào)來(lái)對(duì)待。指針也需要合理的符號(hào)。np 僅僅只是作為指針 nodepointer 的助記符。如果一貫都遵從命名規(guī)范,那么很容易就能推斷出 np 表示“節(jié)點(diǎn)指針”。在下一篇文章中會(huì)提到更多。
    同時(shí)在編程可讀性的其它方面,一致性也是極其重要的。假使變量名為 maxphysaddr,則不要給同級(jí)關(guān)系的變量取名 lowestaddress。
    最后,我傾向于「最小長(zhǎng)度」但「最大信息量」的命名,并讓上下文補(bǔ)齊其余部分。例如:全局變量在使用時(shí)很少有上下文幫助理解,那么它們的命名相對(duì)而言更需要令人易懂。因此我稱 maxphyaddr 作為一個(gè)全局變量名,對(duì)于在本地定義和使用的指針來(lái)說(shuō) np 并不一定是 NodePoint。這是品味的問(wèn)題,但品味又與清晰度相關(guān)。
    我避免在命名時(shí)嵌入大寫(xiě)字母;它們的閱讀舒適性太別扭了,像糟糕的排版一樣令人心煩。

03、指針的使用

    C語(yǔ)言不同尋常,因?yàn)樗试S指針指向任何事物。指針是鋒利的工具,像任何這樣的工具一樣,使用得當(dāng)可以產(chǎn)生令人愉悅的生產(chǎn)力,但使用不當(dāng)也可以造成極大的破壞。指針在學(xué)術(shù)界的名聲不太好,因?yàn)樗kU(xiǎn)了,莫名其妙地就變得糟糕的不行。但我認(rèn)為它是強(qiáng)大的符號(hào),它可以幫助我們清楚地自我表達(dá)。

1、過(guò)程名稱

    過(guò)程名稱應(yīng)該表明它們是做什么的,函數(shù)名稱應(yīng)該表明它們返回什么。函數(shù)通常在像 if 這樣的表達(dá)式使用,因此可讀性要好。

2、注釋

    這一個(gè)微妙的問(wèn)題,需要自己體會(huì)和判斷。由于一些原因,我傾向于寧可清除注釋。第一,假如代碼清晰,并且使用了規(guī)范的類型名稱和變量名稱,應(yīng)該從代碼本身就可以理解。第二,編譯器不能檢查注釋,因此不能保證準(zhǔn)確,特別是代碼修改過(guò)以后。誤導(dǎo)性的注釋會(huì)非常令人困惑。第三,排版問(wèn)題:注釋會(huì)使代碼變得雜亂。
    但有時(shí)我會(huì)寫(xiě)注釋,像下文一樣僅僅只是把它們用于介紹。例如:解釋全局變量的使用和類型(我總是在龐大的程序中寫(xiě)注釋);作為一個(gè)不尋常或者關(guān)鍵過(guò)程的介紹;或標(biāo)記出大規(guī)模計(jì)算的一節(jié)。

3、復(fù)雜度

    許多程序過(guò)于復(fù)雜,比需要有效解決的問(wèn)題更加復(fù)雜。這是為什么呢?大部分是由于設(shè)計(jì)不好,但我會(huì)跳過(guò)這個(gè)問(wèn)題,因?yàn)檫@個(gè)問(wèn)題太大了。然而程序往往在微觀層面就很復(fù)雜,有關(guān)這些可以在這里解決。

    規(guī)則 1:不要斷定程序會(huì)在什么地方耗費(fèi)運(yùn)行時(shí)間。瓶頸總是出現(xiàn)在令人意想不到的地方,直到證實(shí)瓶頸在哪,不要試圖再次猜測(cè)并加快運(yùn)行速度。

    規(guī)則 2:估量(measure) 在沒(méi)有對(duì)代碼做出估量之前不要優(yōu)化速度,除非發(fā)現(xiàn)最耗時(shí)的那部分代碼,要不也不要去做。

    規(guī)則 3:當(dāng) n 很小時(shí)(通常也很小),花哨的算法運(yùn)行很慢。花哨算法有很大的常數(shù)級(jí)別復(fù)雜度。在你確定 n 總是很大之前, 不要使用花哨算法。(即使假如 n 變大,也優(yōu)先使用規(guī)則 2).例如,對(duì)于常見(jiàn)問(wèn)題,二叉樹(shù)總比伸展樹(shù)高效。

    本文由培訓(xùn)無(wú)憂網(wǎng)達(dá)內(nèi)教育課程顧問(wèn)老師整理發(fā)布,更多課程信息可關(guān)注C語(yǔ)言培訓(xùn)或添加老師微信:15033336050

      注:尊重原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處和鏈接 http://www.hebeijilong.cn/news-id-5923.html 違者必究!部分文章來(lái)源于網(wǎng)絡(luò)由培訓(xùn)無(wú)憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實(shí)性請(qǐng)自行核實(shí)或聯(lián)系我們,了解更多相關(guān)資訊請(qǐng)關(guān)注c語(yǔ)言頻道查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050

留下你的信息,課程顧問(wèn)老師會(huì)一對(duì)一幫助你規(guī)劃更適合你的專業(yè)課程!
  • 姓名:

  • 手機(jī):

  • 地區(qū):

  • 想學(xué)什么:

  • 培訓(xùn)無(wú)憂網(wǎng)
免 費(fèi) 申 請(qǐng) 試 聽(tīng)
提交申請(qǐng),《培訓(xùn)無(wú)憂網(wǎng)》課程顧問(wèn)老師會(huì)一對(duì)一幫助你規(guī)劃更適合你的專業(yè)課程!