# cimagf, cimag, cimagl

< c‎ | numeric‎ | complex

定义于头文件 `<complex.h>` |  |
float cimagf( float complex z ); | (1) | (C99 起)
double cimag( double complex z ); | (2) | (C99 起)
long double cimagl( long double complex z ); | (3) | (C99 起)
定义于头文件 `<tgmath.h>` |  |
#define cimag( z ) | (4) | (C99 起)

1-3) 返回 `z` 的虚部。
4) 泛型宏：若 `z` 拥有 long double complex 、 long double imaginary 或 long double 类型，则调用 `cimagl` 。若 `z` 拥有 float complex 、 float imaginary 或 float 类型，则调用 `cimagf` 。若 `z` 拥有 double complex 、 double imaginary 、 double 或任何整数类型，则调用 `cimag` 。

### 参数

z | - | 复参数

### 返回值

`z` 的虚部。

此函数对所有可行输入完全指明，而且不受制于任何描述于 math_errhandling 的错误。

### 注意

对于任何复数变量 `z` ， z == creal(z) + I*cimag(z) 。

### 示例

    #include <stdio.h>
    #include <complex.h>

    int main(void)
    {
        double complex z = 1.0 + 2.0*I;
        printf("%f%+fi\n", creal(z), cimag(z));
    }

输出：

    1.000000+2.000000i

### 引用

- C11 标准（ISO/IEC 9899:2011）：

  - 7.3.9.2 The cimag functions (p: 197)

  - 7.25 Type-generic math <tgmath.h> (p: 373-375)

  - G.7 Type-generic math <tgmath.h> (p: 545)

- C99 标准（ISO/IEC 9899:1999）：

  - 7.3.9.2 The cimag functions (p: 178-179)

  - 7.22 Type-generic math <tgmath.h> (p: 335-337)

  - G.7 Type-generic math <tgmath.h> (p: 480)

### 参阅

creal crealf creall (C99)(C99)(C99) | 计算复数的实部 (函数)