混亂C原始碼的幾個錯誤,你犯了嗎?
下面是一個Step by Step的教程,教你如何把一個清晰的程式碼變得複雜難懂的。當然,這只是一個“簡明教程”了。
開始程式
下面是一個找出素數的程式:
下面我們來看看如何把上面這段程式碼搞得複雜難懂。
第一步、把for變成while
通常來說,for循壞要以while循壞簡單一些,上面的程式有二重for迴圈,我們不但要把其變成while迴圈,而且還要把二重迴圈的變成一重的迴圈,然後使用大量的if-else語句來判斷。
第二步,把循壞變成遞迴
遞迴在某些時候是可以把程式碼變得簡單,但大多數的情況下是把程式碼變得複雜,而且很沒有效率。下面是把上面的while迴圈變成了遞迴。變成了遞迴後,函式的引數都變成3個了。
第三步,弄亂程式碼結構/使用沒有含義的變數名
關於如何弄亂程式碼結構,其中一個小技巧是,使用“?”表示式代替if-else語句。
第四步,取消臨時變數
臨時變數一般用來儲存反覆使用的一個表示式的值。使用大量重複的表示式來取消這些臨時變數的也可以讓程式碼複雜起來。
第五步,繼續弄亂變數名
我們知道,下劃線是合法的變數名,所以,我們不妨用__,___,____來代替m,t,c。函式名也可以使用下劃線來代替。讓我們來看看求素數的函式能變成什麼。
第六步,移除常量
在上面的程式中,還有一些常量,你可以透過增加一個宏定義,或是增加一個函式的形參來取代這一常量。
程式到這裡應該差不多了。類似的錯誤,你犯了嗎?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31365439/viewspace-2677886/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript中常見的錯誤,你犯了幾個?JavaScript
- 22、listener的幾個錯誤程式碼
- C#幾個經常犯錯誤彙總C#
- 國際C語言混亂程式碼大賽C語言
- 使用 Promise 時的5個常見錯誤,你佔了幾個!Promise
- 十個JavaScript中易犯的小錯誤,你中了幾槍?JavaScript
- 低程式碼的5個誤區,你踩雷了嗎?
- oracle的程式設計師犯了不可饒恕的錯誤!Oracle程式設計師
- 你會犯這些 Go 編碼錯誤嗎(二)?Go
- 你遇到過嗎?介面返回錯誤的格式,導致前端各種亂象。怎麼辦?前端
- 10個iOS開發常見錯誤,你中招了嗎iOS
- 這些常見的 Go 編碼錯誤,你犯過嗎(一)?Go
- 測試程式碼時你會犯的 11 個錯誤
- 路由器擺放時的四個錯誤 你中槍了嗎?路由器
- 蘋果開發幾個常見的錯誤蘋果
- 這10個iOS開發常見錯誤,你確定你沒中招嗎iOS
- mysql匯入資料亂碼錯誤一則MySql
- 有了Git這個操作,我再也不怕程式碼混亂了!Git
- 前端自動指令碼中常見的幾個問題,你遇到了嗎?前端指令碼
- POI批量替換world文件XWPFParagraph.getRuns 出現分段混亂(附原始碼)原始碼
- MySQL亂碼的幾種原因MySql
- 程式設計師看法上的幾個典型錯誤程式設計師
- 傳送請求時,url 出現亂碼錯誤
- 殺死你的APP的6個致命錯誤APP
- 為什麼說微軟在Vista安全上犯了錯誤(轉)微軟
- 你知道黑客的入侵方式都有哪些嗎?這些你知道幾個?黑客
- 第 24 屆國際 C 語言混亂程式碼大賽結果出爐
- 通過錯誤堆疊資訊和原始碼分析錯誤來源原始碼
- 內容堆砌、認知失調...... 遊戲策劃最容易犯的錯誤你中了幾個?遊戲
- Python開發人員常犯的幾個重大錯誤Python
- mysql客戶端連線的幾個常見錯誤MySql客戶端
- 你知道Golang原始碼各目錄的作用嗎?Golang原始碼
- 面試官:你分析過SpringMVC的原始碼嗎?面試SpringMVC原始碼
- Laravel Excpetions(錯誤處理) 原始碼分析Laravel原始碼
- 微信支付錯誤兩個問題的解決:curl出錯,錯誤碼:60
- 這幾個高階前端常用的API,你用到了嗎?前端API
- #Java裡你還在用double作為價格的欄位型別?你犯了大錯了!Java型別
- 關於PHP的十大誤解 你中了幾個?PHP