#if的後面接的是表達式spa
#if (MAX==10)||(MAX==20) code... #endif
它的做用是:若是(MAX==10)||(MAX==20)成立,那麼編譯器就會把其中的#if 與 #endif之間的代碼編譯進去(注意:是編譯進去,不是執行!!)code
#if defined的使用
#if後面接的是一個宏。blog
#if defined (x) ...code... #endif
這個#if defined它無論裏面的「x」的邏輯是「真」仍是「假」它只管這個程序的前面的宏定義裏面有沒有定義「x」這個宏,若是定義了x這個宏,那麼,編譯器會編譯中間的…code…不然不直接忽視中間的…code…代碼。編譯器
另外 #if defined(x)也能夠取反,也就用 #if !defined(x) it
#ifdef的使用
#ifdef的使用和#if defined()的用法一致
#ifndef又和#if !defined()的用法一致。編譯
最後強調兩點:
第一:這幾個宏定義只是決定代碼塊是否被編譯!
第二:別忘了#endifclass