1.除錯標記
適用預處理#define定義乙個或多個除錯標記,在**中把除錯部分使用#ifdef 和#endif 進行管理。當程式最終除錯完成後,只需要使用#undef標記,除錯**就會消失。常用的除錯標記為debug, 語句序列:
#define debug
#ifdef debug
除錯**
#endif
2.執行期間除錯標記
在程式執行期間開啟和關閉除錯標記。通過設定乙個除錯bool標記可以實現。這對命令列執行的程式更為方便。
例如下面**
#include
#include
using namespace std;
bool debug =false;
int main(int argc,char*argv)
for(int i=0;iif(string(argv[i])==「--debug=on「)
debug = true;
bool go=true;
while(go)
if(debug)
除錯**
}else {}
3.把變數和表示式轉換成字串
可是使用字串運算子來實現轉換輸出定義
#define pr(x) cout<<#x」=」<4.c語言的assert()
該巨集在中,,當使用assert時候,給他個引數,即乙個判讀為真的表示式。預處理器產生測試該斷言的**,如果斷言不為真,則發出乙個錯誤資訊告訴斷言是什麼以及它失敗一會,程式會終止。
#include< assert>
using namsapce std;
int main()
int i=100;
assert(i!=100); //fails
當除錯完畢後在#include前加入#define ndebug即可消除紅產生的**
c 程式設計思想
c和c 指標的最重要的區別在於 c 是一種型別要求更強的語言。就void 而言,這一點表現得更加突出。c雖然不允許隨便地把乙個型別的指標指派給另乙個型別,但允許通過void 來實現。例如 bird b rock r void v v r b v c 不允許這樣做,其編譯器將會給出乙個出錯資訊。如果真...
C 程式設計除錯
c 程式設計師有時會用到一種類似於標頭檔案保護的技術,以便有選擇地執行除錯 基本思想是,程式可以包含一些用於除錯的 但是這些 只在開發程式時使用。當應用程式編寫完成準備發布時,要先遮蔽掉除錯 這種方式用到兩項預處理功能 assert和ndebug。assert 是一種預處理巨集 preprocess...
C 程式設計中的四個除錯小技巧
c 程式設計中的四個除錯小技巧 1.除錯標記 適用預處理 define定義乙個或多個除錯標記,在 中把除錯部分使用 ifdef 和 endif 進行管理。當程式最終除錯完成後,只需要使用 undef標記,除錯 就會消失。常用的除錯標記為debug,語句序列 define debug ifdef de...