typestar

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

  1. #ifdef prueba si una macro existe siquiera.
  2. #if evalúa una expresión constante entera.
  3. Las macros predefinidas identifican la plataforma y el estándar.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 2 en Encabezados y condiciones; paso 9 de 12 en Preprocesador y encabezados.

← Anterior Siguiente →