這篇文章給大家分享的是有關(guān)c++代碼調(diào)試的小技巧的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。
1.代碼調(diào)試的重要性
代碼調(diào)試在程序開發(fā)階段占有舉足輕重的地位,可見代碼調(diào)試的重要性。但是有一點(diǎn)必須強(qiáng)調(diào):程序是設(shè)計(jì)出來的,而不是調(diào)試出來的。這是所有程序員必須牢記在心的一條準(zhǔn)則。一個(gè)沒有設(shè)計(jì)或者這幾得很糟糕的程序,無論怎樣調(diào)試,也不會(huì)成為一個(gè)合格的程序。
程序有著良好的設(shè)計(jì)的前提下,軟件開發(fā)的過程中,編碼錯(cuò)誤在所難免。所有程序可能出現(xiàn)的錯(cuò)誤可分為兩類:語法錯(cuò)誤和邏輯錯(cuò)誤。調(diào)試通常是指在消除了語法錯(cuò)誤之后,發(fā)現(xiàn)程序中的邏輯錯(cuò)誤的過程。對(duì)C/C++程序進(jìn)行調(diào)試,有這樣集中常用的手段。它們既可以單獨(dú)使用,也可以配合使用。
2. 代碼調(diào)試方式的幾點(diǎn)建議
2.1使用打印語句
這是最樸素,也是最直接的方法。程序的運(yùn)行可以看成是一組變量(狀態(tài))不斷變化的過程,這個(gè)過程就是數(shù)據(jù)處理的過程。如果程序的最終結(jié)果不對(duì),那么我們必須考慮這一組狀態(tài)什么時(shí)候出現(xiàn)了問題,而查看中間結(jié)果就成了一種最有效的手段。
因此,不要過分迷信功能強(qiáng)大的調(diào)試工具。在大部分情況下,程序出現(xiàn)的問題都是一些小問題。而正是這些小問題,卻造成了大麻煩。程序員可以通過對(duì)最有可能出錯(cuò)的代碼附近使用簡單的printf()語句或cout<<…語句來輸出中間結(jié)果,查看異常情況。
2.2使用調(diào)試標(biāo)記
在調(diào)試程序的時(shí)候使用相應(yīng)的輔助代碼(如輸出中間結(jié)果等),在調(diào)試完成之后隱藏這些代碼,是一種常用的調(diào)試策略。
這種策略可以借助于#define、#ifdef、#endif這三個(gè)與編譯指令來實(shí)現(xiàn)。具體地說,就是在調(diào)試程序的時(shí)候,利用編譯器的命令行參數(shù)定義調(diào)試標(biāo)記(相當(dāng)于程序中用#define定義的宏),然后再#ifdef和#endif之間包含相應(yīng)的調(diào)試代碼就可以了。當(dāng)程序最終調(diào)試完成后,在生成發(fā)行版時(shí),只要在編譯器命令行參數(shù)中不再提供調(diào)試標(biāo)記,程序中的調(diào)試代碼就會(huì)消失。常用的調(diào)試標(biāo)記為_DEBUG(在VC++ 2012)中,編譯器調(diào)試版的程序是會(huì)缺省定義宏_DEBUG??疾烊缦鲁绦颉?/p>
#include <iostream> using namespace std; int main() { int i=5; #ifdef _DEBUG cout<<i<<endl; #endif cout<<"Hello World!"<<endl; }
文章題目:c++代碼調(diào)試的小技巧-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://jinyejixie.com/article8/djcjop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、品牌網(wǎng)站制作、搜索引擎優(yōu)化、Google、用戶體驗(yàn)、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容