命名空间
变体
操作

imaginary

来自 cppreference.cn
< c‎ | numeric‎ | complex
 
 
 
复数运算
类型和虚数常量
(C99)
(C99)    
(C11)
imaginary
(C99)
(C99)
操作
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
幂函数和指数函数
(C99)
(C99)
(C99)
(C99)
三角函数
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
双曲函数
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
 
定义在头文件 <complex.h>
#define imaginary _Imaginary
(C99 起)

此宏扩展为关键字 _Imaginary

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

与 C 中任何纯虚数支持一样,此宏仅在支持虚数时定义。

定义 __STDC_IEC_559_COMPLEX__ 的编译器不要求支持虚数。POSIX 建议检查是否定义了宏 _Imaginary_I 以识别虚数支持。

(C99 起)
(C11 之前)

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

(C11 起)

目录

[编辑] 注意

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

迄今为止,已知只有 Oracle C 编译器实现了虚数类型。

[编辑] 示例

#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

[编辑] 参考

  • C17 标准 (ISO/IEC 9899:2018)
  • 7.3.1/5 imaginary (p: 136)
  • G.6/1 imaginary (p: 391-392)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.3.1/5 imaginary (p: 188)
  • G.6/1 imaginary (p: 537)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.3.1/3 imaginary (p: 170)
  • G.6/1 imaginary (p: 472)

[编辑] 另请参阅

复数类型宏
(关键字宏) [编辑]