C++中if、#if與#ifdef、#ifndef彼此的區別

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

#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。


if就是判斷語句,不是預編譯指令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章