Namespaces
Variants

imaginary

From cppreference.net
Definiert im Header <complex.h>
#define imaginary _Imaginary
(seit C99)

Dieses Makro expandiert zum Schlüsselwort _Imaginary .

Dies ist ein praktisches Makro, das es ermöglicht, float imaginary , double imaginary und long double imaginary als alternative Schreibweise für die drei rein imaginären C-Typen float _Imaginary , double _Imaginary und long double _Imaginary zu verwenden.

Wie bei jeder Unterstützung für rein imaginäre Zahlen in C, ist dieses Makro nur definiert, falls die imaginären Zahlen unterstützt werden.

Ein Compiler, der __STDC_IEC_559_COMPLEX__ definiert, ist nicht verpflichtet, imaginäre Zahlen zu unterstützen. POSIX empfiehlt zu prüfen, ob das Makro _Imaginary_I definiert ist, um die Unterstützung imaginärer Zahlen zu identifizieren.

(seit C99)
(bis C11)

Imaginäre Zahlen werden unterstützt, wenn __STDC_IEC_559_COMPLEX__ definiert ist.

(seit C11)

Inhaltsverzeichnis

Hinweise

Programmen ist es erlaubt, das imaginary Makro zu undefinieren und möglicherweise neu zu definieren.

Bis heute ist nur der Oracle C-Compiler dafür bekannt, dass er imaginary types implementiert hat.

Beispiel

#include <stdio.h>
#include <complex.h>
int main(void)
{
    double imaginary i = -2.0*I; // rein imaginär
    double f = 1.0; // rein reell
    double complex z = f + i; // komplexe Zahl
    printf("z = %.1f%+.1fi\n", creal(z), cimag(z));
}

Ausgabe:

z = 1.0-2.0i

Referenzen

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

Siehe auch

(C99)
Komplexer Typ-Makro
(Schlüsselwort-Makro)