_Complex_I
Определено в заголовочном файле <complex.h> | ||
|---|---|---|
#define _Complex_I /* unspecified */ | (с C99) |
Макрос _Complex_I расширяется до значения типа const float _Complex со значением мнимой единицы.
Примечания
Этот макрос можно использовать, когда I недоступен, например, когда он был объявлен недоступным приложением.
В отличие от _Imaginary_I и CMPLX, использование этого макроса для построения комплексного числа может привести к потере знака нуля в мнимой части.
Пример
#include <stdio.h>
#include <complex.h>
#undef I
#define J _Complex_I // can be used to redefine I
int main(void)
{
// can be used to construct a complex number
double complex z = 1.0 + 2.0 * _Complex_I;
printf("1.0 + 2.0 * _Complex_I = %.1f%+.1fi\n", creal(z), cimag(z));
// sign of zero may not be preserved
double complex z2 = 0.0 + -0.0 * _Complex_I;
printf("0.0 + -0.0 * _Complex_I = %.1f%+.1fi\n", creal(z2), cimag(z2));
}Возможный вывод:
1.0 + 2.0 * _Complex_I = 1.0+2.0i 0.0 + -0.0 * _Complex_I = 0.0+0.0i
Ссылки
- Стандарт C23 (ISO/IEC 9899:2023):
- 7.3.1/4 _Complex_I (с. TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.3.1/4 _Complex_I (с. 136)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.3.1/4 _Complex_I (с. 188)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.3.1/2 _Complex_I (с. 170)
См. также
|
(C99) | мнимая единица i (макро-константа) |
|
(C99) | комплексная или мнимая единица i (макро-константа) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/complex/Complex_I