C++小知識:復(fù)制粘貼代碼千萬要小心
錯誤代碼:
sampleCount VoiceKey::OnBackward (....) { ... int atrend = sgn(buffer[samplesleft - 2]- buffer[samplesleft - 1]); int ztrend = sgn(buffer[samplesleft - WindowSizeInt-2]- buffer[samplesleft - WindowSizeInt-2]); ... }
解釋:
“buffer[samplesleft – WindowSizeInt-2]
” 該表達式是減去其自身。這個錯誤是由于復(fù)制粘貼代碼引起的,該程序員復(fù)制了一行代碼,卻忘記把 2 改為 1 了。
正確的代碼:
int ztrend = sgn(buffer[samplesleft - WindowSizeInt-2]- buffer[samplesleft - WindowSizeInt-1]);
建議:
復(fù)制粘貼代碼時千萬要小心。
不建議大家拒絕使用復(fù)制粘貼的方法,畢竟它確實很有用,使用起來太方便了。但用的時候千萬要小心,不要著急。
俗話說有備無患。記住復(fù)制粘貼代碼可能會導(dǎo)致大量的錯誤??纯催@些通過 V501 診斷發(fā)現(xiàn) bug 的例子中,有一半的錯誤都是由于使用復(fù)制粘貼方法導(dǎo)致的,另外一半是因為拼寫錯誤。當(dāng)然關(guān)于這個話題,我們另一篇文章專門寫到它。
當(dāng)你復(fù)制代碼并進行修改的時候,時刻要記得檢查你是否完全做對了!千萬別偷懶!
另外,我們還會討論更多關(guān)于復(fù)制粘貼的話題,我打賭你還沒意識到這個問題影響的范圍有多廣,但是我保證會讓你印象深刻。C++小知識:復(fù)制粘貼代碼千萬要小心
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
關(guān)于VS+QT5應(yīng)用程序換圖標(biāo)的解決方案
這篇文章主要介紹了VS+QT5應(yīng)用程序換圖標(biāo)的處理方案,本文給大家提供了兩種解決方案供大家參考,每種方法給大家講解的都非常詳細,需要的朋友可以參考下2021-12-12使用C++ Matlab中的lp2lp函數(shù)教程詳解
本文介紹如何使用C++編寫數(shù)字濾波器設(shè)計算法,實現(xiàn)Matlab中的lp2lp函數(shù),將低通濾波器轉(zhuǎn)換為參數(shù)化的低通濾波器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-04-04