c 程式設計中的除錯技巧 C 程式設計思想

2021-03-31 08:56:28 字數 933 閱讀 9342

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...