CMPLXF, CMPLX, CMPLXL
Определено в заголовочном файле <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 (стр. 197)
См. также
|
(C99) |
константа мнимой единицы i (макро-константа) |
Документация C++ для complex |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/complex/CMPLX