名前空間
変種
操作

CMPLXF, CMPLX, CMPLXL

From cppreference.com
< c‎ | numeric‎ | complex
ヘッダー <complex.h> で定義
float complex       CMPLXF( float real, float imag );
(C11 以降)
double complex      CMPLX( double real, double imag );
(C11 以降)
long double complex CMPLXL( long double real, long double imag );
(C11 以降)

これらのマクロは、指定された複素型の値に評価される式に展開されます。実部は real の値(指定された引数型に変換)を持ち、虚部は imag の値(指定された引数型に変換)を持ちます。

これらの式は、real および imag 式も適切であれば、静的またはスレッド記憶域期間を持つオブジェクトの初期化子として使用するのに適しています。

目次

[編集] パラメータ

real - 返される複素数の実部
imag - 返される複素数の虚部

[編集] 戻り値

realimag をそれぞれ実部および虚部として構成された複素数。

[編集] 注意

これらのマクロは、虚数型がサポートされているかのように(たとえそれらが他にサポートされておらず、_Imaginary_I が実際には未定義であっても)実装され、以下のように定義されているかのように扱われます。

#define CMPLX(x, y) ((double complex)((double)(x) + _Imaginary_I * (double)(y)))
#define CMPLXF(x, y) ((float complex)((float)(x) + _Imaginary_I * (float)(y)))
#define CMPLXL(x, y) ((long double complex)((long double)(x) + \
                      _Imaginary_I * (long double)(y)))

[編集]

#include <stdio.h>
#include <complex.h>
 
int main(void)
{
    double complex z = CMPLX(0.0, -0.0);
    printf("z = %.1f%+.1fi\n", creal(z), cimag(z));
}

出力

z = 0.0-0.0i

[編集] 参考文献

  • C11標準 (ISO/IEC 9899:2011)
  • 7.3.9.3 CMPLX マクロ (p: 197)

[編集] 関連項目

虚数単位定数 i
(マクロ定数) [編集]
English 日本語 中文(简体) 中文(繁體)