I
来自cppreference.com
在标头 <complex.h> 定义 | ||
#define I /* 未指明 */ | (C99 起) | |
I
宏展开成 _Complex_I 或 _Imaginary_I。若实现不支持虚数类型,则该宏始终展开成 _Complex_I。
程序可以取消定义,并在其后重定义宏 I。
目录 |
[编辑]注意
该宏名字不是 i,虽然这是数学上的虚数单位名称。因为 i
已经用于大量 C 程序中,例如作为循环变量。
宏 I 常用于组成复数,通过如 x + y*I 的表达式。 若 I
被定义成 _Complex_I,则该表达式在 y
为 -0.0
时创建虚部为 +0.0
的值,这对拥有分支的复变函数有显著影响。宏 CMPLX 提供精确构造复数的方法。
GCC 提供了一种不可移植的扩展,它允许通过在实数字面量后指定后缀 i
:1.0fi
、1.0i
及 1.0li
是 GNU C 中的虚数单位。C++14 起,类似的方式是标准 C++ 的一部分(1.0if
、1.0i
及 1.0il
是 C++ 中的虚数单位)。
[编辑]示例
运行此代码
输出:
I = 0.0+1.0i I * I = -1.0+0.0i z = 1.0+2.0i