| Todas las directivas 
              condicionales deben completarse dentro del mismo fichero. Sólo 
              se compilarán las líneas que estén dentro de 
              las secciones que cumplan la condición de la expresión 
              constante correspondiente.
 Estas directivas 
              funcionan de modo similar a los operadores condicionales C++. 
              Si el resultado de evaluar la expresión constante 1, que 
              puede ser una macro, es distinto de cero (true), las líneas 
              representadas por sección-1, ya sean líneas de comandos, 
              macros o incluso nada, serán compiladas. En caso contrario, 
              si el resultado de la evaluación de la expresión constante 
              1, es cero (false), la sección-1 será ignorada, no 
              se expandirán macros ni se compilará.  En el caso de 
              ser distinto de cero, después de que la sección-1 
              sea preprocesada, el control pasa al #endif correspondiente, con 
              lo que termina la secuencia condicional. En el caso de ser cero, 
              el control pasa al siguiente línea #elif, si existe, donde 
              se evaluará la expresión constante 2. Si el resultado 
              es distinto de cero, se procesrá la sección-2, y después 
              el control pasa al correspondiente #endif. Por el contrario, si 
              el resultado de la expresión constante 2 es cero, el control 
              pasa al siguiente #elif, y así sucesivamente, hasta que se 
              encuentre un #else o un #endif. El #else, que es opcional, se usa 
              como una condición alternativa para el caso en que todas 
              la condiciones anteriores resulten falsas.  El #endif 
              termina la secuencia condicional.
 Cada sección 
              procesada puede contener a su vez directivas condicionales, anidadas 
              hasta cualquier nivel, cada #if debe corresponderse con el #endif 
              más cercano.
 El objetivo 
              de una red de este tipo es que sólo una sección, 
              inclusive vacía, sea compilada. Las secciones 
              ignoradas sólo son relevantes para evaluar las condiciones 
              anidadas, es decir asociar cada #if con su #endif.
 Las expresiones 
              constantes deben poder ser evaluadas como valores enteros. |