Namensräume
Varianten
Aktionen

imaginary

Von cppreference.com
< c‎ | numeric‎ | complex
Definiert im Header <complex.h>
#define imaginary _Imaginary
(seit C99)

Dieses Makro expandiert zum Schlüsselwort _Imaginary.

Dies ist ein Komfortmakro, 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 imaginäre Zahlen in C ist dieses Makro nur definiert, wenn imaginäre Zahlen unterstützt werden.

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

(seit C99)
(bis C11)

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

(seit C11)

Inhalt

[bearbeiten] Hinweise

Programme dürfen das imaginary-Makro undefinieren und möglicherweise neu definieren.

Bis heute ist nur der Oracle C Compiler dafür bekannt, imaginäre Typen implementiert zu haben.

[bearbeiten] Beispiel

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

Ausgabe

z = 1.0-2.0i

[bearbeiten] 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 (S. 188)
  • G.6/1 imaginary (S. 537)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.3.1/3 imaginary (S. 170)
  • G.6/1 imaginary (S. 472)

[bearbeiten] Siehe auch

Makro für komplexen Typ
(Keyword-Makro) [bearbeiten]