關於除錯迴圈 遞迴的一點技巧

2021-04-13 13:26:58 字數 556 閱讀 1457

前幾天在網上看到一篇文章,一位老兄說他有一次除錯程式,乙個迴圈跟蹤到七十多趟(迴圈了七十多趟)才找到問題,累得他要死。

今天我除錯自己的遞迴同樣遇到了這樣的問題,大概在反覆呼叫自己n多次時出現了問題,可vc 只能一步步的來,怎麼辦?我想了幾個辦法,可以解決這個「除錯難」的問題。

(會用__debug__巨集的同志可以不看第一步)

1、在你要除錯的函式的檔案的適當位置加入巨集:

#ifdef __debug__

...#endif

所謂適當位置就是要列印訊息的地方,巨集(巨集)當中一般都寫些類似printf的語句,把函式中的內容列印出來。然後再在這個檔案頭上定義__debug__巨集。編譯執行,這時會列印出很多函式執行時的訊息,根據這些訊息一般就可以知道在迴圈或者是遞迴了多少次後出現了問題;

2、定義乙個區域性變數i作計數器,每次迴圈時i都++,遞迴需要把i定義成全域性變數,同樣每次遞迴呼叫i都++;然後寫一句話:

if(i ==

***)

if(var1 

==100

)...

再在這裡設上斷點就行了。

關於遞迴的一點感想

遞迴,方法重複呼叫其自身。對於遞迴,估計是一開始就沒有理解透,經常感覺對遞迴掌握的不夠透,理解的不夠深入。最近做的乙個 要求遍歷產品所對應的每一級目錄,並取得最大的目錄 一級目錄 及最小目錄 沒有子目錄了 當時就自己寫了乙個遞迴方法,居然還成功了,呵呵。其實我個人覺得遞迴就是給定乙個結束迴圈的條件,...

遞迴的一點思考

廢話不說,直接上 searchtree delete int x,searchtree t else if t left null 沒有兒子的情況也包含了,因為t right 為null else else if x t element t right delete x,t right else t...

一點學習技巧

學習乙個新東西或者說要掌握乙個東西,要先理清他的脈絡,結構,做到心中有數,然後再就揪細節。就像高中時候寫作文一樣,我的文章 都是議 結構基本是一成不變的。總分總,分的中間,又是排比段落,總結,排比段落,總結。確認好主題,就是忘裡面填東西,所以只要有素材,寫作文特別快。同樣的,到了乙個新城市,你想要快...