#if的后面接的是表達(dá)式
#if (MAX==10)||(MAX==20) code...#endif
它的作用是:如果(MAX==10)||(MAX==20)成立,那么編譯器就會把其中的#if 與 #endif之間的代碼編譯進(jìn)去(注意:是編譯進(jìn)去,不是執(zhí)行?。。?/span>
#if后面接的是一個宏。
#if defined (x) ...code...#endif
這個#if defined它不管里面的“x”的邏輯是“真”還是“假”它只管這個程序的前面的宏定義里面有沒有定義“x”這個宏,如果定義了x這個宏,那么,編譯器會編譯中間的…code…否則不直接忽視中間的…code…代碼。
另外 #if defined(x)也可以取反,也就用 #if !defined(x)
#ifdef的使用和#if defined()的用法一致
#ifndef又和#if !defined()的用法一致。
最后強(qiáng)調(diào)兩點(diǎn):
第一:這幾個宏定義只是決定代碼塊是否被編譯!
第二:別忘了#endif