C++中 #if 和 #ifdef 區別

以#開頭的都是預編譯指令,就是在正式編譯以前,編譯器作一些預處理的工做

#if 條件語句
程序段1 //若是條件語句成立,那麼就編譯程序段1
#endif
程序段2//若是條件不語句成立,那麼就編譯程序段2

#ifndef x//先測試x是否被宏定義過
#define 程序段1 //若是x沒有被宏定義過,那麼就編譯程序段1
#endif
程序段2 //若是x已經定義過了則編譯程序段2的語句,「忽視」程序段1。

#ifdef x //先測試x是否被宏定義過
程序段1 //若是x被宏定義過,那麼就編譯程序段1
#endif
程序段2 //若是x沒有被定義過則編譯程序段2的語句,「忽視」程序段1。測試

相關文章
相關標籤/搜索