_Imaginary_I
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <complex.h> で定義
|
||
#define _Imaginary_I /* unspecified */ |
(C99以上) | |
_Imaginary_I は虚数単位の値を持つ const float _Imaginary 型の値に展開されるマクロです。
Cにおける純粋な虚数のサポートと同様、このマクロは虚数がサポートされている場合にのみ定義されます。
|
|
(C99以上) (C11未満) |
|
|
(C11以上) |
ノート
このマクロを使用すると、実部と虚部から正確に複素数を組み立てることができます (例: (double complex)((double)x + _Imaginary_I * (double)y))。 このパターンは C11 で CMPLX マクロとして標準化されました。 代わりに _Complex_I を使用すると、虚部において負のゼロが正のゼロに変換される場合があります。
例
Run this code
#include <stdio.h>
#include <complex.h>
#include <math.h>
int main(void)
{
double complex z1 = 0.0 + INFINITY * _Imaginary_I;
printf("z1 = %.1f%+.1fi\n", creal(z1), cimag(z1));
double complex z2 = 0.0 + INFINITY * _Complex_I;
printf("z2 = %.1f%+.1fi\n", creal(z2), cimag(z2));
}
出力:
z1 = 0.0+Infi
z2 = NaN+Infi
参考文献
- C11 standard (ISO/IEC 9899:2011):
- 7.3.1/5 _Imaginary_I (p: 188)
- G.6/1 _Imaginary_I (p: 537)
- C99 standard (ISO/IEC 9899:1999):
- 7.3.1/3 _Imaginary_I (p: 170)
- G.6/1 _Imaginary_I (p: 472)
関連項目
(C99) |
虚数単位 i を表す複素数型の定数 (マクロ定数) |
(C99) |
虚数単位 i を表す複素数型または虚数型の定数 (マクロ定数) |