混亂C原始碼的幾個錯誤,你犯了嗎?

freebus發表於2020-03-01

下面是一個Step by Step的教程,教你如何把一個清晰的程式碼變得複雜難懂的。當然,這只是一個“簡明教程”了。

開始程式

下面是一個找出素數的程式:

混亂C原始碼的幾個錯誤,你犯了嗎?

下面我們來看看如何把上面這段程式碼搞得複雜難懂。


第一步、把for變成while

通常來說,for循壞要以while循壞簡單一些,上面的程式有二重for迴圈,我們不但要把其變成while迴圈,而且還要把二重迴圈的變成一重的迴圈,然後使用大量的if-else語句來判斷。

第二步,把循壞變成遞迴

遞迴在某些時候是可以把程式碼變得簡單,但大多數的情況下是把程式碼變得複雜,而且很沒有效率。下面是把上面的while迴圈變成了遞迴。變成了遞迴後,函式的引數都變成3個了。

第三步,弄亂程式碼結構/使用沒有含義的變數名

關於如何弄亂程式碼結構,其中一個小技巧是,使用“?”表示式代替if-else語句。

第四步,取消臨時變數

臨時變數一般用來儲存反覆使用的一個表示式的值。使用大量重複的表示式來取消這些臨時變數的也可以讓程式碼複雜起來。

第五步,繼續弄亂變數名

我們知道,下劃線是合法的變數名,所以,我們不妨用__,___,____來代替m,t,c。函式名也可以使用下劃線來代替。讓我們來看看求素數的函式能變成什麼。

第六步,移除常量

在上面的程式中,還有一些常量,你可以透過增加一個宏定義,或是增加一個函式的形參來取代這一常量。

程式到這裡應該差不多了。類似的錯誤,你犯了嗎?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31365439/viewspace-2677886/,如需轉載,請註明出處,否則將追究法律責任。

相關文章