1. 程式人生 > >使用預處理器進行調試

使用預處理器進行調試

add 技術分享 font lin emp date iostream use demo

一、預處理指令

問題:輸入一些WORD,判斷有沒有首字母大寫的兩個相同的詞

 1 #include<iostream>
 2 #include<string>
 3 
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     string currWord, preWord;
 9     cout << "Enter some words:(ctrl+z to end)" << endl;
10     while (cin >> currWord)
11     {
12 #ifndef NDEBUG
13 cout << endl << "調試:" << currWord << endl; //這是調試用的 14 #endif 15 if (!isupper(currWord[0])) 16 continue; 17 if (currWord == preWord) 18 break; 19 else preWord = currWord; 20 } 21 if (currWord == preWord&&!currWord.empty())
22 { 23 cout << "The repeated word:" << currWord << endl; 24 } 25 else 26 cout << "沒有重復的!" << endl; 27 system("pause"); 28 }

技術分享圖片

關閉預處理:

解決資源方案--demo--右鍵“屬性”--c++--命令行----附加選項:/DNDEBUG

技術分享圖片

結果:

技術分享圖片

二、預處理常量

 1 #include<iostream>
 2 #include<string
> 3 4 using namespace std; 5 6 int main() 7 { 8 cout << "文件:" << __FILE__ << endl<<"行:" << __LINE__ << endl<<"日期:" << __DATE__ << endl<<"時間:" << __TIME__ << endl; 9 system("pause"); 10 }

技術分享圖片

三、assert斷言

 1 #include<iostream>
 2 #include<assert.h>
 3 
 4 using namespace std;
 5 
 6 int add(int x, int y)
 7 {
 8     return x * y;
 9 }
10 int main()
11 {
12     int result;
13     result = add(1, 2);
14     assert(result == 3);
15     cout << result << endl;
16     system("pause");
17 }

技術分享圖片

斷言也用來調試,與預定義一樣,受附加選項/DNDEBUG控制

使用預處理器進行調試