imaginary

来自cppreference.com
< c‎ | numeric‎ | complex
定义于头文件 <complex.h>
#define imaginary _Imaginary
(C99起)

此宏展开成关键词_Imaginary

这是一个便利宏,使你能用float imaginarydouble imaginary以及long double imaginary 作为另一种书写三种纯虚数C类型float _Imaginarydouble _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; // 纯虚数
    double f = 1.0; // pure real
    double complex z = f + i; // 复数
    printf("z = %.1f%+.1fi\n", creal(z), cimag(z));
}

输出:

z = 1.0+2.0i

[编辑] 参考

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

[编辑] 参阅

复数类型宏
(宏常量) [edit]