首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

imaginary

在头文件<math.h>中定义

?

?

#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宏。

代码语言:javascript
复制
#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));
}

输出:

代码语言:javascript
复制
z = 1.0+2.0i

参考

  • C11标准(ISO / IEC 9899:2011):
    • 7.3.1 / 5想象(p:188)
    • G.6 / 1假想(p:537)
  • C99标准(ISO / IEC 9899:1999):
    • 7.3.1 / 3假想(p:170)
    • G.6 / 1想象(p:472)

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com