#ifdef和#if defined都可以用來判斷單個宏是否被定義,而且由於#ifdef比較簡潔,因而得到廣泛的使用,那爲啥還需要#if defined呢?
對於多個宏判斷,就必須使用#if defined功能了,例如
#ifdef A && #ifdef B
上述這種定義方式是不正常的,而應該定義成 #if ( defined A) && (defined B)
綜上所述,#ifdef是#if defined的簡化版,只是判斷單個宏是否被定義時可用#ifdef,其它複雜條件都得用#if defined。