CMPLXF, CMPLX, CMPLXL

来自cppreference.com
< c‎ | numeric‎ | complex
 
 
 
复数算术
类型与虚数常量
(C99)
CMPLX
(C11)
(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>
float complex       CMPLXF( float real, float imag );
(C11 起)
double complex      CMPLX( double real, double imag );
(C11 起)
long double complex CMPLXL( long double real, long double imag );
(C11 起)

每个宏都展开成求值为指定复数类型值的表达式,其实部值为(转换到指定参数类型的) real ,其虚部值为(转换到指定参数类型的) imag

该表达式适合用作有静态或线程期间存储的对象的初始化器,只要表达式 realimag 都同样适合。

参数

real - 待返回复数的实部
imag - 待返回复数的虚部

返回值

realimag 为实部和虚部组合成的复数。

注意

这些宏被定义为如同支持虚数类型(即使实际上不支持,而且不定义 _Imaginary_I ),且如同定义如下:

#define CMPLX(x, y) ((double complex)((double)(x) + _Imaginary_I * (double)(y)))
#define CMPLXF(x, y) ((float complex)((float)(x) + _Imaginary_I * (float)(y)))
#define CMPLXL(x, y) ((long double complex)((long double)(x) + \
                      _Imaginary_I * (long double)(y)))

示例

#include <stdio.h>
#include <complex.h>
 
int main(void)
{
    double complex z = CMPLX(0.0, -0.0);
    printf("z = %.1f%+.1fi\n", creal(z), cimag(z));
}

输出:

z = 0.0-0.0i

引用

  • C11 标准(ISO/IEC 9899:2011):
  • 7.3.9.3 The CMPLX macros (p: 197)

参阅

虚数单位常量 i
(宏常量)