C 参考手册
- C 语言
- C 关键词
- 预处理器
- C 标准库头文件
- 类型支持
- 程序支持工具
- 变参数函数
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 算法
- 数值
- 常用数学函数
- 浮点环境
- 伪随机数生成
- 复数算术
- complex
- imaginary
- _Complex_I
- CMPLXF, CMPLX, CMPLXL
- _Imaginary_I
- I
- cimagf, cimag, cimagl
- crealf, creal, creall
- cargf, carg, cargl
- cabsf, cabs, cabsl
- conjf, conj, conjl
- cprojf, cproj, cprojl
- cexpf, cexp, cexpl
- clogf, clog, clogl
- cpowf, cpow, cpowl
- csqrtf, csqrt, csqrtl
- ccosf, ccos, ccosl
- csinf, csin, csinl
- ctanf, ctan, ctanl
- cacosf, cacos, cacosl
- casinf, casin, casinl
- catanf, catan, catanl
- ccoshf, ccosh, ccoshl
- csinhf, csinh, csinhl
- ctanhf, ctanh, ctanhl
- cacoshf, cacosh, cacoshl
- casinhf, casinh, casinhl
- catanhf, catanh, catanhl
- 泛型数学
- 文件输入/输出
- 本地化支持
- 原子操作库
- 线程支持库
- 实验性 C 标准库
- 有用的资源
- 符号索引
- 注释
I
定义于头文件 <complex.h>
|
||
#define I /* unspecified */ |
(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
引用
- C11 standard (ISO/IEC 9899:2011):
- 7.3.1/6 I (p: 188)
- G.6/1 I (p: 537)
- C99 standard (ISO/IEC 9899:1999):
- 7.3.1/4 I (p: 170)
- G.6/1 I (p: 472)
参阅
(C99) |
虚数单位常量 i (宏常量) |
(C99) |
复数单位常量i (宏常量) |
(C11)(C11)(C11) |
由实部和虚部构建复数 (宏函数) |