Namespaces
Variants

NAN

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
NAN DEC_NAN
(C99) (C23)
Arguments and return values
Error handling
Fast operation indicators
Défini dans l'en-tête <math.h>
#define NAN /*défini par l'implémentation*/
(depuis C99)

La macro NAN s'étend en une expression constante de type float , qui évalue à une valeur silencieuse non numérique (QNaN). Si l'implémentation ne prend pas en charge les QNaNs, cette macro constante n'est pas définie.

Le style utilisé pour afficher un NaN est défini par l'implémentation.

Table des matières

Notes

Il existe de nombreuses valeurs NaN différentes, distinguées par leurs charges utiles et leurs bits de signe. Le contenu de la charge utile et le bit de signe du NaN généré par la macro NAN sont définis par l'implémentation.

Exemple

Affiche le style utilisé pour imprimer un NaN et le format IEEE.

#include <inttypes.h>
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
    const double f = NAN;
    uint64_t fn;
    memcpy(&fn, &f, sizeof f);
    printf("NAN:   %f %" PRIx64 "\n", f, fn);
}

Sortie possible :

NAN:   nan 7ff8000000000000

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.12/5 NAN (p: TBD)
  • F.10/11/13 NAN (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.12/5 NAN (p: À DÉTERMINER)
  • F.10/11/13 NAN (p: À DÉTERMINER)
  • Norme C11 (ISO/CEI 9899:2011) :
  • 7.12/5 NAN (p: 232)
  • F.10/11/13 NAN (p: 518)
  • Norme C99 (ISO/IEC 9899:1999) :
  • 7.12/5 NAN (p: 213)
  • F.9/11/13 NAN (p: 455)

Voir aussi

(C99) (C99) (C99)
retourne un NaN (not-a-number)
(fonction)
(C99)
vérifie si le nombre donné est NaN
(macro de fonction)