C
数值 | Numerics

imaginary

imaginary

在头文件中定义
#define imaginary _Imaginary(since C99)

此宏扩展到关键字_Imaginary。

这是一个方便的宏,使得它可以使用float imaginarydouble imaginary以及long double imaginary作为一种替代的方式来写这三个纯虚C型float _Imaginarydouble _Imaginarylong double _Imaginary

与C中的任何纯虚数支持一样,只有在支持虚数时才定义该宏。

定义__STDC_IEC_559_COMPLEX__的编译器不需要支持虚数。POSIX建议检查宏_Imaginary_I是否被定义为标识虚数支持。(自C99开始)(直到C11)
如果定义了__STDC_IEC_559_COMPLEX__,则支持虚数。(自C11以来)

笔记

程序被允许取消定义并可能重新定义imaginary宏。

#include <stdio.h> #include <complex.h> int main(void) { double imaginary i = 2.0*I; // pure imaginary double f = 1.0; // pure real double complex z = f + i; // complex number printf("z = %.1f%+.1fi\n", creal(z), cimag(z) }

输出:

z = 1.0+2.0i

参考

  • C11标准(ISO / IEC 9899:2011):