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

_Imaginary_I

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

?

?

#define _Imaginary_I / *未指定* /

?

(自C99以来)

_Imaginary_I宏用虚数单元的值展开为const float _Imaginary类型的值。

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

定义__STDC_IEC_559_COMPLEX__的编译器不需要支持虚数。POSIX建议检查宏_Imaginary_I是否被定义为标识虚数支持。

(自C99开始)(直到C11)

如果定义了__STDC_IEC_559_COMPLEX__,则支持虚数。

(自C11以来)

注意

这个宏允许从其实部和虚部组装一个复数的精确方法,例如, (双复数)((double)x + _Imaginary_I *(double)y)。 这种模式在C11中被标准化为宏CMPLX。 请注意,如果使用_Complex_I,则允许此表达式将虚拟位置中的负零转换为正零。

代码语言:javascript
复制
#include <stdio.h>
#include <complex.h>
 
int main(void)
{
    double complex z = 0.0 + -0.0 * _Imaginary_I;
    printf("z = %.1f%+.1fi\n", creal(z), cimag(z));
}

输出:

代码语言:javascript
复制
z = 0.0-0.0i

参考

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

扩展内容

_Complex_I(C99)

复数单位常数i(宏常数)

I (C99)

复数或虚数单位常数i(宏常数)

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com