Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

Macro __STDC_VERSION_FENV_H__

Pragmas de contrôle


Entête à inclure

#include <fenv.h>  // <cfenv> en C++

Macro __STDC_VERSION_FENV_H__

#define __STDC_VERSION_FENV_H__ 202311L

Depuis C23, l'entête <fenv.h> peut définir la macro __STDC_VERSION_FENV_H__. Sa valeur permet de savoir que l'entête correspond à la révision C23, c'est-à-dire 202311L.

Cette macro est utile pour conditionner l'utilisation des nouveautés C23 de <fenv.h>, comme femode_t, fesetexcept, fetestexceptflag, fegetmode ou fesetmode.

Exemple de code

Le programme suivant teste la présence de la macro avant d'afficher sa valeur.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
#include <fenv.h>
#include <stdio.h>

int main() {

#ifdef __STDC_VERSION_FENV_H__
    printf( "Version de fenv.h : %ld\n", __STDC_VERSION_FENV_H__ );
#else
    puts( "__STDC_VERSION_FENV_H__ non definie" );
#endif

    return 0;
}
Tester la version de fenv.h

Avec une implémentation C23 complète, l'affichage attendu est le suivant.

Version de fenv.h : 202311

Sujets connexes

Environnement flottant
Exceptions en virgule flottante
Pragmas de contrôle


Pragmas de contrôle




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé