通过#if、#elif、#ifdef、#ifndef、#else、#endif等预编译指令选择进行下一步编译的代码。
基本形式如下:
#if constant-expression-1 group-of-lines-1 #elif constant-expression-2 group-of-lines-2 ... #elif constant-expression-n group-of-lines-n #else last-group-of-lines #endif
几个要点:
#ifdef(#ifndef)用于测试一个预处理宏是否被定义(没有定义),如果定义(没有定义)则为真,否则为假。
#ifdef的另一个表达方式是使用defined操作符,形式如下:
defined name 或 defined(name)
#ifdef name与#if defined(name)等同。
#if defined(name)的形式在表达式比较复杂时尤为有用。如:
#if defined(VAX) && !defined(UNIX) && defined(DEBUG)