imaginary

来自cppreference.com
< c‎ | numeric‎ | complex
 
 
 
复数算术
类型与虚数常量
(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 _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 页)

参阅

复数类型宏
(关键词宏)