当前位置: C语言 -- 标准库 -- <complex.h> -- I

I宏


概要:

#define I _Imaginary_I或者_Complex_I


描述:

该宏会扩展为_Imaginary_I或者_Complex_I;如果实现没有定义_Imaginary_I,该宏将扩展为_Complex_I

GCC编译器<complex.h>头文件中,该宏定义如下:

#define I _Complex_I

尽管ISO/IEC 9899:2018标准有保留标识符的规定;但程序可以取消定义宏I,并且可以再重新定义宏I


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
/*宏I范例*/

#ifdef __STDC_NO_COMPLEX__
#error "Implementation does not support complex types."
#endif

#include <complex.h>
#include <stdio.h>

int main(void)
{
    double complex x = 1.0 + 2.0*I;
    double complex y = 2.3 + 1.5*I;
    double complex z;

    z = x + y;
    printf("z = %.2f + %.2fi\n",creal(z),cimag(z));

    return 0;
}


输出:

z = 3.30 + 3.50i


相关内容:
_Complex_I 表示const float _Complex类型的具有虚数单位值的宏。
_Imaginary_I 表示const float _Imaginary类型的具有虚数单位值的宏。