_Complex_I

来自cppreference.com
< c‎ | numeric‎ | complex
 
 
 
复数算术
类型与虚数常量
(C99)
_Complex_I
(C99)
(C11)
(C99)
操作
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
幂与指数函数
(C99)
(C99)
(C99)
(C99)
三角函数
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
双曲函数
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
 
定义于头文件 <complex.h>
#define _Complex_I /* unspecified */
(C99 起)

_Complex_I 宏展开成类型 const float _Complex 的值,其值为虚数单位。

注意

可在 I 非法时,譬如程序已取消定义它时使用此宏。

不同于 _Imaginary_ICMPLX 不同,用此宏构造复数会失去虚数组分的零的符号位。

示例

#include <stdio.h>
#include <complex.h>
 
#undef I
#define J _Complex_I // 可用于重定义 I
 
int main(void)
{
    // 可用于构建复数
    double complex z = 1.0 + 2.0 * _Complex_I;
    printf("1.0 + 2.0 * _Complex_I = %.1f%+.1fi\n", creal(z), cimag(z));
 
    // 零的符号不会被保留
    double complex z2 = 0.0 + -0.0 * _Complex_I;
    printf("0.0 + -0.0 * _Complex_I = %.1f%+.1fi\n", creal(z2), cimag(z2));
}

可能的输出:

1.0 + 2.0 * _Complex_I = 1.0+2.0i
0.0 + -0.0 * _Complex_I = 0.0+0.0i

引用

  • C11 标准(ISO/IEC 9899:2011):
  • 7.3.1/4 _Complex_I (p: 188)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.3.1/2 _Complex_I (p: 170)

参阅

虚数单位常量 i
(宏常量)
(C99)
复数或虚数单位常量 i
(宏常量)