Compilación condicional en C
El preprocesador puede incluir o descartar regiones enteras según qué esté definido.
#include <stdio.h>
#define FEATURE_LEVEL 2
void report(void) {
#if defined(__linux__)
printf("linux\n");
#elif defined(_WIN32)
printf("windows\n");
#else
printf("somewhere else\n");
#endif
#if FEATURE_LEVEL >= 2
printf("extended features\n");
#endif
#if __STDC_VERSION__ >= 201112L
printf("C11 or newer\n");
#endif
}
Cómo funciona
#ifdefprueba si una macro existe siquiera.#ifevalúa una expresión constante entera.- Las macros predefinidas identifican la plataforma y el estándar.
Palabras clave y builtins usados aquí
void
El intento, en números
- Líneas
- 21
- Caracteres a escribir
- 320
- Tokens
- 68
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 41 segundos.
Paso 2 de 2 en Encabezados y condiciones; paso 9 de 12 en Preprocesador y encabezados.