Namespaces
Variants

_Imaginary_I

From cppreference.net
헤더 파일에 정의됨 <complex.h>
#define _Imaginary_I /* unspecified */
(C99부터)

_Imaginary_I 매크로는 허수 단위의 값을 갖는 const float _Imaginary 타입의 값으로 확장됩니다.

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

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

(C99부터)
(C11까지)

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

(C11부터)

목차

참고 사항

이 매크로는 복소수를 실수부와 허수부 구성 요소로부터 정밀하게 조립하는 방법을 제공합니다, 예를 들어 ( double complex ) ( ( double ) x + _Imaginary_I * ( double ) y ) 와 같이 사용됩니다. 이 패턴은 C11에서 CMPLX 매크로로 표준화되었습니다. 만약 _Complex_I 가 대신 사용된다면, 이 표현식은 허수 위치에서 음의 영을 양의 영으로 변환하는 것이 허용됩니다.

예제

#include <stdio.h>
#include <complex.h>
#include <math.h>
int main(void)
{
    double complex z1 = 0.0 + INFINITY * _Imaginary_I;
    printf("z1 = %.1f%+.1fi\n", creal(z1), cimag(z1));
    double complex z2 = 0.0 + INFINITY * _Complex_I;
    printf("z2 = %.1f%+.1fi\n", creal(z2), cimag(z2));
}

출력:

z1 = 0.0+Infi 
z2 = NaN+Infi

참고문헌

  • C11 표준 (ISO/IEC 9899:2011):
  • 7.3.1/5 _Imaginary_I (p: 188)
  • G.6/1 _Imaginary_I (p: 537)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.3.1/3 _Imaginary_I (p: 170)
  • G.6/1 _Imaginary_I (p: 472)

참조 항목

복소수 단위 상수 i
(매크로 상수)
(C99)
복소수 또는 허수 단위 상수 i
(매크로 상수)