C++小知識(shí):復(fù)制粘貼代碼千萬要小心
錯(cuò)誤代碼:
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]
” 該表達(dá)式是減去其自身。這個(gè)錯(cuò)誤是由于復(fù)制粘貼代碼引起的,該程序員復(fù)制了一行代碼,卻忘記把 2 改為 1 了。
正確的代碼:
int ztrend = sgn(buffer[samplesleft - WindowSizeInt-2]- buffer[samplesleft - WindowSizeInt-1]);
建議:
復(fù)制粘貼代碼時(shí)千萬要小心。
不建議大家拒絕使用復(fù)制粘貼的方法,畢竟它確實(shí)很有用,使用起來太方便了。但用的時(shí)候千萬要小心,不要著急。
俗話說有備無患。記住復(fù)制粘貼代碼可能會(huì)導(dǎo)致大量的錯(cuò)誤??纯催@些通過 V501 診斷發(fā)現(xiàn) bug 的例子中,有一半的錯(cuò)誤都是由于使用復(fù)制粘貼方法導(dǎo)致的,另外一半是因?yàn)槠磳戝e(cuò)誤。當(dāng)然關(guān)于這個(gè)話題,我們另一篇文章專門寫到它。
當(dāng)你復(fù)制代碼并進(jìn)行修改的時(shí)候,時(shí)刻要記得檢查你是否完全做對(duì)了!千萬別偷懶!
另外,我們還會(huì)討論更多關(guān)于復(fù)制粘貼的話題,我打賭你還沒意識(shí)到這個(gè)問題影響的范圍有多廣,但是我保證會(huì)讓你印象深刻。C++小知識(shí):復(fù)制粘貼代碼千萬要小心
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
C++優(yōu)先級(jí)隊(duì)列的使用指南與模擬實(shí)現(xiàn)
優(yōu)先級(jí)隊(duì)列是一種特殊的隊(duì)列,其中每個(gè)元素都有一個(gè)與之關(guān)聯(lián)的優(yōu)先級(jí),優(yōu)先級(jí)較高的元素會(huì)在隊(duì)列中較早地被處理,而優(yōu)先級(jí)較低的元素會(huì)在后續(xù)處理,本文給大家介紹C++優(yōu)先級(jí)隊(duì)列的使用指南與模擬實(shí)現(xiàn),需要的朋友可以參考下2023-09-09Opencv二幀差法檢測(cè)運(yùn)動(dòng)目標(biāo)與提取輪廓
這篇文章主要為大家詳細(xì)介紹了Opencv使用二幀差法檢測(cè)運(yùn)動(dòng)目標(biāo)與提取輪廓,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03關(guān)于VS+QT5應(yīng)用程序換圖標(biāo)的解決方案
這篇文章主要介紹了VS+QT5應(yīng)用程序換圖標(biāo)的處理方案,本文給大家提供了兩種解決方案供大家參考,每種方法給大家講解的都非常詳細(xì),需要的朋友可以參考下2021-12-12使用C++ Matlab中的lp2lp函數(shù)教程詳解
本文介紹如何使用C++編寫數(shù)字濾波器設(shè)計(jì)算法,實(shí)現(xiàn)Matlab中的lp2lp函數(shù),將低通濾波器轉(zhuǎn)換為參數(shù)化的低通濾波器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-04-04C語言代碼實(shí)現(xiàn)簡(jiǎn)單的掃雷小游戲
這篇文章主要為大家詳細(xì)介紹了C語言代碼實(shí)現(xiàn)簡(jiǎn)單的掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03