混亂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
- 當你寫圖片的 alt 時,你是否犯了這五個錯誤?
- 國際C語言混亂程式碼大賽C語言
- 使用 Promise 時的5個常見錯誤,你佔了幾個!Promise
- 你會犯這些 Go 編碼錯誤嗎(二)?Go
- DG使用中遇到的幾個錯誤
- 這些常見的 Go 編碼錯誤,你犯過嗎(一)?Go
- 低程式碼的5個誤區,你踩雷了嗎?
- 路由器擺放時的四個錯誤 你中槍了嗎?路由器
- 這10個iOS開發常見錯誤,你確定你沒中招嗎iOS
- 傳送請求時,url 出現亂碼錯誤
- Python開發人員常犯的幾個重大錯誤Python
- 有了Git這個操作,我再也不怕程式碼混亂了!Git
- 前端自動指令碼中常見的幾個問題,你遇到了嗎?前端指令碼
- POI批量替換world文件XWPFParagraph.getRuns 出現分段混亂(附原始碼)原始碼
- DDoS防禦的認知誤區,你知道幾個?
- 盤點 Python 高手都寫不出來的幾個錯誤Python
- Laravel Excpetions(錯誤處理) 原始碼分析Laravel原始碼
- C中的匯流排錯誤和段錯誤
- Linux新手常見的7個認知誤區,你中了幾個?Linux
- 數字化的混亂之治
- 西方的世界是那麼混亂
- 好程式設計師分享JavaScript幾個最常見的錯誤程式設計師JavaScript
- 內容堆砌、認知失調...... 遊戲策劃最容易犯的錯誤你中了幾個?遊戲
- 你知道黑客的入侵方式都有哪些嗎?這些你知道幾個?黑客
- #Java裡你還在用double作為價格的欄位型別?你犯了大錯了!Java型別
- 今天在object-c 和swift 混編的時候出現錯誤:could not build module foundationObjectSwiftUI
- 幾種常見的JSP中文亂碼JS
- 你知道Golang原始碼各目錄的作用嗎?Golang原始碼
- 面試官:你分析過SpringMVC的原始碼嗎?面試SpringMVC原始碼
- 直播系統原始碼的收益方式你知道幾點?原始碼
- 這幾個好用的Python開源框架,你都知道嗎?Python框架
- 學習Python的幾個必要條件,你具備嗎?Python
- 這幾個高階前端常用的API,你用到了嗎?前端API
- 這些錯誤你都犯過嗎?來看看9大XMind初學者常見錯誤!
- async/await 你是會用,但是你知道怎麼處理錯誤嗎?AI
- 用Kubernetes解決容器的混亂(上)
- SpringBoot原始碼@ConditionalOnBean與@ConditionalOnClass你清楚嗎Spring Boot原始碼Bean