Namespaces
Variants

imaginary

From cppreference.net
헤더 파일에 정의됨 <complex.h>
#define imaginary _Imaginary
(C99부터)

이 매크로는 키워드 _Imaginary 로 확장됩니다.

이는 float imaginary , double imaginary , 그리고 long double imaginary 를 사용하여 세 가지 순수 허수 C 타입인 float _Imaginary , double _Imaginary , 그리고 long double _Imaginary 를 대체하는 방식으로 작성할 수 있게 해주는 편의 매크로입니다.

C에서 순수 허수 지원과 마찬가지로, 이 매크로는 허수가 지원되는 경우에만 정의됩니다.

__STDC_IEC_559_COMPLEX__ 를 정의하는 컴파일러라도 허수(imaginary numbers)를 지원할 필요는 없습니다. POSIX는 매크로 _Imaginary_I 가 정의되어 있는지 확인하여 허수 지원 여부를 식별할 것을 권장합니다.

(C99부터)
(C11 이전)

__STDC_IEC_559_COMPLEX__ 가 정의된 경우 허수(imaginary numbers)를 지원합니다.

(C11부터)

목차

참고 사항

프로그램은 imaginary 매크로를 정의 해제하고 재정의할 수 있습니다.

현재까지는 Oracle C 컴파일러만이 허수 타입을 구현한 것으로 알려져 있습니다.

예제

#include <stdio.h>
#include <complex.h>
int main(void)
{
    double imaginary i = -2.0*I; // 순수 허수
    double f = 1.0; // 순수 실수
    double complex z = f + i; // 복소수
    printf("z = %.1f%+.1fi\n", creal(z), cimag(z));
}

출력:

z = 1.0-2.0i

참고문헌

  • C17 표준 (ISO/IEC 9899:2018):
  • 7.3.1/5 imaginary (p: 136)
  • G.6/1 imaginary (p: 391-392)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.3.1/5 imaginary (p: 188)
  • G.6/1 imaginary (p: 537)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.3.1/3 imaginary (p: 170)
  • G.6/1 imaginary (p: 472)

참고 항목

(C99)
복소수 타입 매크로
(키워드 매크로)