天天看點

《C語言程式設計進階教程》一3.1.2 程式設計中

本文講的是<b>C語言程式設計進階教程一3.1.2 程式設計中</b>,這可能會讓你感到吃驚:如果你想要正确且更快地完成程式,那就寫更多的代碼。寫一些并不需要的代碼。在你為了滿足一個要求而把代碼放到一個更大的程式之前,寫一個小程式來測試你的解決方案。這叫作單元測試。如果你不能讓一個函數正常工作,那你肯定不能在把很多函數放在一起之後讓其正常工作。在你完成了程式的一些部分之後,要確定在繼續下去之前這些部分可以正常工作。你需要去編寫額外的代碼來測試這些部分,因為其他部分還沒有準備好。有一個經驗法則:對于你需要寫的每一行代碼,你應該寫三行額外的代碼。這些額外的工作會幫助你了解你必須做什麼,并且幫助你測試已經完成的工作。

總是使用一個自動縮程序式的文本編輯器。這樣的編輯器可以幫助你在出錯的地方檢測大括号。為什麼縮進很重要呢?因為更容易直覺地檢測未對齊的代碼。使用正确的工具可以節省你寶貴的時間。

在運作任何測試用例之前一行一行地讀你的代碼。如果你之前沒有試過這個方法,你會對這個方法的效果感到驚訝。讀代碼可以幫助你找到通過測試很難發現的問題。例如:

《C語言程式設計進階教程》一3.1.2 程式設計中

分号“;”結束了if條件。結果就是在“{”和“}”之間的代碼不受if條件控制并且一直運作。

在你腦中運作一些簡單的測試例子。如果不了解你的程式是做什麼的,計算機也不會去執行你想要的功能。

在進行之前,寫一些代碼去測試某些條件是否已經滿足。假設排序是某程式的一部分:在程式去做其他事情之前,先檢查一下資料是否已經被存儲好了。

避免複制粘貼代碼。相反,通過建立函數來重構代碼,這樣就可以避免複制代碼了。如果你需要對複制過來的代碼進行微小的改變,使用函數的實參就可以實作這樣的變化。這是行之有效的原則:相似的代碼會導緻錯誤的發生。你會很快記不住複制的數量,搞不清相似的代碼之間的不同。要在多個複制而來的代碼間保持一緻性是很困難的。你将會發現你的程式在一些情況下是正确的,但在其他情況下就是錯誤的。要發現并移除這個類型的bug将會是非常費時間的。最好的政策就是從一開始就去避免它。編寫一個一直報錯的程式會比一個時而正确時而錯誤的程式要好一些。如果它一直在報錯,問題總是來自僅僅一個地方,你就可以集中精力在這一處。如果問題不是一直出現,且來自很多可能的地方,那麼找到并移除這樣的錯誤就會更加困難。

使用版本控制。您是否聽過這樣的經曆:“程式的一些部分昨天還正常工作。我做了一些修改,現在就完全無法工作了。我改動了很多地方以至于我根本不知道到底改動了哪裡。”版本控制會讓你看到與之前版本相比的改動。

解決所有的編譯警告。許多調查顯示警告很可能會是嚴重的錯誤,雖然它們不是文法錯誤。一些人會忽略警告資訊,認為他們可以在讓程式運作起來之後再去解決這些警告。然而,警告資訊經常預示着一些會導緻程式難以運作的問題。

原文标題:C語言程式設計進階教程一3.1.2 程式設計中

繼續閱讀