天天看點

C++中#define,#ifdef和#endif的作用

今天發現一個好用的東西,自己在編寫code時經常需要測試,但是每次呢測試的代碼寫了删删了寫。很麻煩,運作也不美觀。希望運作時不再顯示之前測試好的代碼,那邊的測試代碼就得全部注釋或者删除再編譯;

今天無意發現這個#define,#ifdef 和#endif 有這麼個作用!

舉例如下:

#include<iostream>

#include<string>

using namespace std;

#define test_debug

int main(){

string a;

cout<<"Please say you love me: " <<endl;

cin >> a;

#ifdef test_debug

cout << "Hahahaha~~~Mua~~~" <<endl;

#endif

return 0;

}

編譯:

➜ test g++ -g main.cpp -o abc

運作結果如下:

➜ test ./abc

Please say you love me:

I love you

Hahahaha~~~Mua~~~

如果不想看到測試的那段,直接将#define test_debug雙斜杠(//)注釋掉即可

然後編譯運作結果如下:

➜ test ./abc

Please say you love me: 

I love you

沒有了最後一句:Hahahaha~~~Mua~~~!!!

是不是很神奇,反正覺得挺好玩,挺實用!

轉載于:https://www.cnblogs.com/maq-aegean/p/9870688.html