imaginary

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

此宏展开成关键词 _Imaginary

这是一个便利宏,使你能用 float imaginarydouble imaginarylong 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 宏。

如今,只有 Oracle C 编译器已知实现了虚部类型。

[编辑] 示例

#include <stdio.h>
#include <complex.h>
 
int main(void)
{
    double imaginary i = 2.0*I; // 纯虚数
    double f = 1.0; // 纯实数
    double complex z = f + i; // 复数
    printf("z = %.1f%+.1fi\n", creal(z), cimag(z));
}

输出:

z = 1.0+2.0i

[编辑] 引用

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

[编辑] 参阅

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