C
数值 | Numerics

CMPLXL

CMPLXF, CMPLX, CMPLXL

在头文件中定义
float complex CMPLXF( float real, float imag (since C11)
double complex CMPLX( double real, double imag (since C11)
long double complex CMPLXL( long double real, long double imag (since C11)

这些宏中的每一个都扩展为一个表达式,该表达式的值为指定的复合类型的值,实部的值为real(转换为指定的参数类型),虚部的值为imag(转换为指定的参数类型)。

该表达式是适合用作初始化用于与静态或线程存储时限的物体,只要表达式realimag也是合适的。

参数

真实-复数的实际部分返回
图片-复数的虚数部分返回

返回值

复数组成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):