Namespaces
Variants

Diagnostic directives

From cppreference.net

Affiche le message d'erreur donné et rend le programme mal formé , ou affiche le message d'avertissement donné sans affecter la validité du programme (depuis C23) .

Table des matières

Syntaxe

#error message-de-diagnostic (1)
#warning message-de-diagnostic (2) (depuis C23)

Explication

1) Après avoir rencontré la directive #error , une implémentation affiche le message diagnostic-message et rend le programme non conforme (la compilation s'arrête).
2) Identique à (1) , sauf que la validité du programme n'est pas affectée et la compilation continue.

diagnostic-message peut être composé de plusieurs mots, pas nécessairement entre guillemets.

Notes

Avant sa standardisation en C23, #warning a été fourni par de nombreux compilateurs dans tous les modes en tant qu'extension conforme.

Exemple

#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 !!");
}

Sortie possible :

The compiler used conforms to the ISO C Standard !!

Références

  • Norme C23 (ISO/IEC 9899:2024) :
  • 6.10.5 Directive d'erreur (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 6.10.5 Directive d'erreur (p: 126-127)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 6.10.5 Directive d'erreur (p: 174)
  • Norme C99 (ISO/IEC 9899:1999) :
  • 6.10.5 Directive d'erreur (p: 159)
  • Norme C89/C90 (ISO/CEI 9899:1990) :
  • 3.8.5 Directive d'erreur

Voir aussi

Documentation C++ pour Directives de diagnostic