非常教程

C参考手册

数值 | Numerics

imaginary

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

#define imaginary _Imaginary

(since C99)

此宏扩展到关键字_Imaginary。

这是一个方便的宏,使得它可以使用float imaginarydouble imaginary以及long double imaginary作为一种替代的方式来写这三个纯虚C型float _Imaginarydouble _Imaginarylong 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; // 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

参考

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

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。