_Complex_I
定义于头文件 <complex.h>
|
||
#define _Complex_I /* unspecified */ |
(C99 起) | |
_Complex_I
宏展开成类型 const float _Complex 的值,其值为虚数单位。
注意
可在 I 非法时,譬如程序已取消定义它时使用此宏。
不同于 _Imaginary_I 及 CMPLX 不同,用此宏构造复数会失去虚数组分的零的符号位。
示例
运行此代码
#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 standard (ISO/IEC 9899:2011):
- 7.3.1/4 _Complex_I (p: 188)
- C99 standard (ISO/IEC 9899:1999):
- 7.3.1/2 _Complex_I (p: 170)
参阅
(C99) |
虚数单位常量 i (宏常量) |
(C99) |
复数或虚数单位常量i (宏常量) |