imaginary
Определено в заголовочном файле <complex.h> | ||
|---|---|---|
#define imaginary _Imaginary | (начиная с C99) |
Этот макрос раскрывается в ключевое слово _Imaginary.
Этот вспомогательный макрос позволяет использовать float imaginary, double imaginary и long double imaginary в качестве альтернативного способа записи трёх типов чисто мнимых чисел C: float _Imaginary, double _Imaginary и long double _Imaginary
Как и любая поддержка чисто мнимых чисел в C, этот макрос определён только в том случае, если поддерживаются мнимые числа.
| Компилятор, определяющий |
(начиная с C99) (до C11) |
| Мнимые числа поддерживаются, если определён | (начиная с C11) |
Примечания
Программам разрешено отменять определение макроса imaginary и, возможно, определять его заново.
На сегодняшний день известно, что типы мнимых чисел реализованы только в компиляторе Oracle C.
Пример
#include <stdio.h>
#include <complex.h>
int main(void)
{
double imaginary i = -2.0*I; // pure imaginary
double f = 1.0; // pure real
double complex z = f + i; // complex number
printf("z = %.1f%+.1fi\n", creal(z), cimag(z));
}
Вывод:
z = 1.0-2.0i
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.3.1/5 мнимые числа (стр. 136)
- G.6/1 мнимые числа (стр. 391–392)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.3.1/5 мнимые числа (стр. 188)
- G.6/1 мнимые числа (стр. 537)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.3.1/3 мнимые числа (стр. 170)
- G.6/1 мнимые числа (стр. 472)
См. также
|
(C99) | макрос типа complex (макрос ключевого слова) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/numeric/complex/imaginary