Namespaces
Variants

Diagnostic directives

From cppreference.net

Muestra el mensaje de error dado y hace que el programa sea incorrecto , o muestra el mensaje de advertencia dado sin afectar la validez del programa (since C23) .

Contenidos

Sintaxis

#error mensaje-de-diagnóstico (1)
#warning mensaje-de-diagnóstico (2) (desde C23)

Explicación

1) Después de encontrar la directiva #error , una implementación muestra el mensaje diagnostic-message y hace que el programa sea incorrecto (la compilación se detiene).
2) Igual que (1) , excepto que la validez del programa no se ve afectada y la compilación continúa.

diagnostic-message puede consistir en varias palabras no necesariamente entre comillas.

Notas

Antes de su estandarización en C23, #warning ha sido proporcionado por muchos compiladores en todos los modos como una extensión conforme.

Ejemplo

#if __STDC__ != 1
#  error "Not a standard compliant compiler"
#endif
#if __STDC_VERSION__ >= 202311L
#  warning "Using #warning as a standard feature"
#endif
#include <stdio.h>
int main (void)
{
    printf("The compiler used conforms to the ISO C Standard !!");
}

Salida posible:

The compiler used conforms to the ISO C Standard !!

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 6.10.5 Directiva de error (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 6.10.5 Directiva de error (p: 126-127)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 6.10.5 Directiva de error (p: 174)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 6.10.5 Directiva de error (p: 159)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 3.8.5 Directiva de error

Véase también

Documentación de C++ para Directivas de diagnóstico