©
本文档使用 PHP中文网手册 发布
在头文件<math.h>中定义 | ||
---|---|---|
float complex CMPLXF( float real, float imag ); | (since C11) | |
double complex CMPLX( double real, double imag ); | (since C11) | |
long double complex CMPLXL( long double real, long double imag ); | (since C11) |
这些宏中的每一个都扩展为一个表达式,该表达式的值为指定的复合类型的值,实部的值为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宏(p:197)