1.#if
#if EXPRESSION
CODE...
#endif
如果EXPRESSION为真则执行CODE,EXPRESSION是在编译时求值的。
2.#ifdef
#ifdef IDENTIFIER
CODE...
#endif
只要宏IDENTIFIER已经被#define,则执行CODE。
3.#if defined
#if defined(IDENTIFIER)
CODE...
#endif
①#if defined(IDENTIFIER) 等价于 #ifdef IDENTIFIER
②因为#if后跟表达式,所对#ifdef的区别在于#if后可以跟defined(IDENTIFIER)的逻辑表达式,例如:
#if defined(IDENTIFIER) && defined(IDENTIFIER1)
CODE...
#endif
而以上如果用#ifdef,表示则需要套嵌,例如:
#ifdef IDENTIFIER
#ifdef IDENTIFIER1
CODE...
#endif
#endif
#if EXPRESSION
CODE...
#endif
如果EXPRESSION为真则执行CODE,EXPRESSION是在编译时求值的。
2.#ifdef
#ifdef IDENTIFIER
CODE...
#endif
只要宏IDENTIFIER已经被#define,则执行CODE。
3.#if defined
#if defined(IDENTIFIER)
CODE...
#endif
①#if defined(IDENTIFIER) 等价于 #ifdef IDENTIFIER
②因为#if后跟表达式,所对#ifdef的区别在于#if后可以跟defined(IDENTIFIER)的逻辑表达式,例如:
#if defined(IDENTIFIER) && defined(IDENTIFIER1)
CODE...
#endif
而以上如果用#ifdef,表示则需要套嵌,例如:
#ifdef IDENTIFIER
#ifdef IDENTIFIER1
CODE...
#endif
#endif