Namespaces
Variants

imaginary

From cppreference.net
Défini dans l'en-tête <complex.h>
#define imaginary _Imaginary
(depuis C99)

Cette macro se développe en le mot-clé _Imaginary .

Ceci est une macro de commodité qui permet d'utiliser float imaginary , double imaginary , et long double imaginary comme une alternative pour écrire les trois types C purs imaginaires float _Imaginary , double _Imaginary , et long double _Imaginary

Comme pour toute prise en charge des nombres purement imaginaires en C, cette macro n'est définie que si les nombres imaginaires sont pris en charge.

Un compilateur qui définit __STDC_IEC_559_COMPLEX__ n'est pas obligé de prendre en charge les nombres imaginaires. POSIX recommande de vérifier si la macro _Imaginary_I est définie pour identifier la prise en charge des nombres imaginaires.

(depuis C99)
(jusqu'à C11)

Les nombres imaginaires sont pris en charge si __STDC_IEC_559_COMPLEX__ est défini.

(depuis C11)

Table des matières

Notes

Les programmes sont autorisés à annuler la définition et éventuellement redéfinir la macro imaginary .

À ce jour, seul le compilateur C d'Oracle est connu pour avoir implémenté les types imaginaires.

Exemple

#include <stdio.h>
#include <complex.h>
int main(void)
{
    double imaginary i = -2.0*I; // pure imaginary
    double f = 1.0; // pure real
    double complex z = f + i; // complex number
    printf("z = %.1f%+.1fi\n", creal(z), cimag(z));
}

Sortie :

z = 1.0-2.0i

Références

  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.3.1/5 imaginary (p: 136)
  • G.6/1 imaginary (p: 391-392)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.3.1/5 imaginary (p: 188)
  • G.6/1 imaginary (p: 537)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.3.1/3 imaginary (p: 170)
  • G.6/1 imaginary (p: 472)

Voir aussi

(C99)
macro de type complexe
(macro mot-clé)