conjf, conj, conjl

来自cppreference.com
< c‎ | numeric‎ | complex
 
 
 
复数算术
类型与虚数常量
(C99)
(C11)
(C99)
操作
(C99)
(C99)
(C99)
(C99)
conj
(C99)
(C99)
幂与指数函数
(C99)
(C99)
(C99)
(C99)
三角函数
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
双曲函数
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
 
定义于头文件 <complex.h>
float complex       conjf( float complex z );
(1) (C99 起)
double complex      conj( double complex z );
(2) (C99 起)
long double complex conjl( long double complex z );
(3) (C99 起)
定义于头文件 <tgmath.h>
#define conj( z )
(4) (C99 起)
1-3) 通过反转虚部的符号计算 z共轭复数
4) 泛型宏:若 z 拥有 long double complexlong double imaginarylong double 类型,则调用 conjl 。若 z 拥有 float complexfloat imaginaryfloat 类型,则调用 conjf 。若 z 拥有 double complexdouble imaginarydouble 或任何整数类型,则调用 conj

参数

z - 复参数

返回值

z 的共轭复数。

注意

在不实现 I_Imaginary_I 的 C99 实现上,可用 conj 获得拥有负零虚部的复数。 C11 中,宏 CMPLX 用于此目的。

示例

#include <stdio.h>
#include <complex.h>
 
int main(void)
{
    double complex z = 1.0 + 2.0*I;
    double complex z2 = conj(z);
    printf("The conjugate of %.1f%+.1fi is %.1f%+.1fi\n",
            creal(z), cimag(z), creal(z2), cimag(z2));
 
    printf("Their product is %.1f%+.1fi\n", creal(z*z2), cimag(z*z2));
}

输出:

The conjugate of 1.0+2.0i is 1.0-2.0i
Their product is 5.0+0.0i

引用

  • C11 标准(ISO/IEC 9899:2011):
  • 7.3.9.4 The conj functions (p: 198)
  • 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.3 The conj functions (p: 179)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • G.7 Type-generic math <tgmath.h> (p: 480)

参阅