命名空间
变体
操作

CMPLXF、CMPLX、CMPLXL

来自 cppreference.com
< c‎ | numeric‎ | complex
定义在头文件 <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 的值(转换为指定的参数类型)。

这些表达式适合用作具有静态或线程存储持续时间的对象的初始化器,只要表达式 realimag 也适合。

内容

[编辑] 参数

real - 要返回的复数的实部
imag - 要返回的复数的虚部

[编辑] 返回值

一个复数,由 realimag 组成,分别作为实部和虚部。

[编辑] 备注

这些宏的实现方式就好像支持虚数类型(即使它们没有被支持,并且 _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 宏 (p: 197)

[编辑] 另请参见

虚数单位常量 i
(宏常量) [编辑]
C++ 文档 for complex