a级毛片免费全部播放-a级毛片免费观看在线播放-a级毛片免费观看网站-a级毛片免费看-国产成人精品在视频-国产成人精品在线

歡迎來到培訓無憂網!

全國切換

咨詢熱線 400-001-5729

位置:培訓無憂網 > 新聞資訊 > 電腦/IT > c語言 >  C語言最好的編程方式

C語言最好的編程方式

來源:培訓無憂網-云朵 發布人:云朵

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

C語言最好的編程方式

    我們鼓勵在編程時應有清晰的哲學思維,而不是給予硬性規則。我并不希望你們能認可所有的東西,因為它們只是觀點,觀點會隨著時間的變化而變化。可是,如果不是直到現在把它們寫在紙上,長久以來這些基于許多經驗的觀點一直積累在我的頭腦中。因此希望這些觀點能幫助你們,了解如何規劃一個程序的細節。(我還沒有看到過一篇講關于如何規劃整個事情的好文章,不過這部分可以是課程的一部分)要是能發現它們的特質,那很好;要是不認同的話,那也很好。但如果能啟發你們思考為什么不認同,那樣就更好了。在任何情況下,都不應該照搬我所說的方式進行編程;要用你認為最好的編程方式來嘗試完成程序。請一以貫之而且毫不留情的這么做。

01、排版問題

    程序是一種出版物。意味著程序員們會先閱讀(也許是幾天、幾周或幾年后的你自己閱讀),最后才輪到機器。機器的快樂就是程序能編譯,機器才不在乎程序寫的有多么漂亮,可是人們應該保持程序的美觀。有時人們會過度關心:用漂亮的打印機呆板地打印出漂亮的輸出,而這些輸出只是將所有介詞用英文文本以粗體字體凸顯出來,都是些與程序無關的細節。雖然有很多人認為程序就應該像 Algol.68 所描述的一樣(有些系統甚至要求照搬該風格編寫程序),可清晰的程序不會因為這樣的呈現而變得更清晰,只會使糟糕的程序變得更可笑。
    對于清晰的程序來說,排版規范一向都是至關重要的。當然,眾所周知最有用的是縮進,但是當墨水遮蓋了意圖時,就會控制住排版。因此即便堅持使用簡單的舊打字機輸出,也該意識到愚蠢的排版。避免過度修飾,比如保持注釋的簡潔和靈活。通過程序整齊一致地說出想表達的。接著往下看。

02、變量命名

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

03、指針的使用

    C語言不同尋常,因為它允許指針指向任何事物。指針是鋒利的工具,像任何這樣的工具一樣,使用得當可以產生令人愉悅的生產力,但使用不當也可以造成極大的破壞。指針在學術界的名聲不太好,因為它太危險了,莫名其妙地就變得糟糕的不行。但我認為它是強大的符號,它可以幫助我們清楚地自我表達。

1、過程名稱

    過程名稱應該表明它們是做什么的,函數名稱應該表明它們返回什么。函數通常在像 if 這樣的表達式使用,因此可讀性要好。

2、注釋

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

3、復雜度

    許多程序過于復雜,比需要有效解決的問題更加復雜。這是為什么呢?大部分是由于設計不好,但我會跳過這個問題,因為這個問題太大了。然而程序往往在微觀層面就很復雜,有關這些可以在這里解決。

    規則 1:不要斷定程序會在什么地方耗費運行時間。瓶頸總是出現在令人意想不到的地方,直到證實瓶頸在哪,不要試圖再次猜測并加快運行速度。

    規則 2:估量(measure) 在沒有對代碼做出估量之前不要優化速度,除非發現最耗時的那部分代碼,要不也不要去做。

    規則 3:當 n 很小時(通常也很小),花哨的算法運行很慢。花哨算法有很大的常數級別復雜度。在你確定 n 總是很大之前, 不要使用花哨算法。(即使假如 n 變大,也優先使用規則 2).例如,對于常見問題,二叉樹總比伸展樹高效。

    本文由培訓無憂網達內教育課程顧問老師整理發布,更多課程信息可關注C語言培訓或添加老師微信:15033336050

      注:尊重原創文章,轉載請注明出處和鏈接 http://m.dedgn.cn/news-id-5923.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注c語言頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050

留下你的信息,課程顧問老師會一對一幫助你規劃更適合你的專業課程!
  • 姓名:

  • 手機:

  • 地區:

  • 想學什么:

  • 培訓無憂網
免 費 申 請 試 聽
提交申請,《培訓無憂網》課程顧問老師會一對一幫助你規劃更適合你的專業課程!

主站蜘蛛池模板: 成人 欧美 | 两性午夜视频 | 午夜性爽视频男人的天堂在线 | 中文字幕在线免费观看视频 | 99久女女精品视频在线观看 | 国产一级二级三级视频 | 黄在线看 | 国产三级在线免费观看 | 国产亚洲一区二区三区 | 100000免费啪啪18免进 | 一本色道久久综合 | a级毛片免费 | 精品久久久久久免费影院 | 国产精品久久久久影视不卡 | 韩日一级视频 | 久久生活片| 成人免费看www网址入口 | 欧美一级亚洲一级 | 日本亚洲视频 | 国产精品免费久久久免费 | 国产成人午夜精品5599 | 国产成人精品免费视频 | 亚洲一级香蕉视频 | 亚洲欧美日韩在线一区二区三区 | 国内交换一区二区三区 | 欧美成人午夜免费完成 | 中国a级毛片免费 | 日本不卡免费高清视频 | 久久中文字幕日韩精品 | 狼伊千合综网中文 | 午夜影院h| 免费观看欧美成人禁片 | 在线观看国产区 | 91网站国产| 毛片免费高清免费 | 欧美一级视频 | 91热在线观看精品 | 亚洲一在线 | 国产极品喷水视频jk制服 | 国产成人精品综合久久久 | 三级黄色片网站 |