每天學點C++知識:複製貼上程式碼千萬要小心

JingerJoe發表於2016-01-17

有個國外團隊檢測了 200 多個 C/C++ 開源專案,包括了 Php、Qt 和 Linux 核心等知名專案。於是他們每天分享一個錯誤案例,並給出相應建議。本篇案例來自 Audacity 原始碼。

錯誤程式碼:

解釋:

“buffer[samplesleft – WindowSizeInt-2]” 該表示式是減去其自身。這個錯誤是由於複製貼上程式碼引起的,該程式設計師複製了一行程式碼,卻忘記把 2 改為 1 了。

正確的程式碼:

建議:

複製貼上程式碼時千萬要小心。

不建議大家拒絕使用複製貼上的方法,畢竟它確實很有用,使用起來太方便了。但用的時候千萬要小心,不要著急。

俗話說有備無患。記住複製貼上程式碼可能會導致大量的錯誤。看看這些通過 V501 診斷發現 bug 的例子中,有一半的錯誤都是由於使用複製貼上方法導致的,另外一半是因為拼寫錯誤。當然關於這個話題,我們另一篇文章專門寫到它。

當你複製程式碼並進行修改的時候,時刻要記得檢查你是否完全做對了!千萬別偷懶!

另外,我們還會討論更多關於複製貼上的話題,我打賭你還沒意識到這個問題影響的範圍有多廣,但是我保證會讓你印象深刻。

相關文章