imaginary
imaginary
在头文件 | | |
---|---|---|
#define imaginary _Imaginary | | (since C99) |
此宏扩展到关键字_Imaginary。
这是一个方便的宏,使得它可以使用float imaginary
,double imaginary
以及long double imaginary
作为一种替代的方式来写这三个纯虚C型float _Imaginary
,double _Imaginary
和long 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):