Namespaces
Variants

CMPLXF, CMPLX, CMPLXL

From cppreference.net
헤더 파일에 정의됨 <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 (지정된 인수 타입으로 변환된) 값을 가집니다.

이 표현식들은 real imag 표현식들도 적합한 경우, 정적 또는 스레드 저장 기간을 가진 객체들의 초기화자로 사용하기에 적합합니다.

목차

매개변수

real - 반환할 복소수의 실수부
imag - 반환할 복소수의 허수부

반환값

실수부와 허수부로 구성된 복소수는 real imag 로 이루어집니다.

참고 사항

이 매크로들은 허수 타입이 지원되는 것처럼 구현됩니다(실제로는 지원되지 않고 _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 CMPLX 매크로 (p: 197)

참고 항목

허수 단위 상수 i
(매크로 상수)