_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 /* 未指明 */
(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

引用

  • C23 标准(ISO/IEC 9899:2024):
  • 7.3.1/4 _Complex_I (第 TBD 页)
  • C17 标准(ISO/IEC 9899:2018):
  • 7.3.1/4 _Complex_I (第 136 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.3.1/4 _Complex_I (第 188 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.3.1/2 _Complex_I (第 170 页)

参阅

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