CMPLXF, CMPLX, CMPLXL

Header: <complex.h>

Each of these macros expands to an expression that evaluates to the value of the specified complex type, with the real part having the value of real (converted to the specified argument type) and the imaginary part having the value of imag (converted to the specified argument type)

# Declarations

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)

# Parameters

# Return value

A complex number composed of real and imag as the real and imaginary parts.

# Notes

These macros are implemented as if the imaginary types are supported (even if they are otherwise not supported and _Imaginary_I is actually undefined) and as if defined as follows:

# Example

#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));
}

# See also