Namespaces
Variants

imaginary

From cppreference.net
ヘッダーで定義 <complex.h>
#define imaginary _Imaginary
(C99以降)

このマクロはキーワード _Imaginary に展開されます。

これは、3つの純虚数C型 float _Imaginary double _Imaginary 、および long double _Imaginary を記述する代替方法として float imaginary double imaginary 、および long double imaginary を使用できるようにする便利なマクロです。

C言語における任意の純虚数のサポートと同様に、このマクロは虚数がサポートされている場合にのみ定義されます。

__STDC_IEC_559_COMPLEX__ を定義するコンパイラは、虚数サポートが必須ではない。POSIX はマクロ _Imaginary_I が定義されているか確認することを推奨している。

(C99 以降)
(C11 まで)

__STDC_IEC_559_COMPLEX__ が定義されている場合、虚数はサポートされる。

(C11 以降)

目次

注記

プログラムは imaginary マクロの定義を解除し、場合によっては再定義することが許可されています。

現在までに、虚数型を実装していることが知られているのはOracle Cコンパイラのみです。

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

出力:

z = 1.0-2.0i

参考文献

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

関連項目

(C99)
複素数型マクロ
(キーワードマクロ)