test_complex_returning.c

来自「用于进行gcc测试」· C语言 代码 · 共 84 行

C
84
字号
/* This is a small test case for returning a complex number. Written by   Andreas Jaeger.  */#include "defines.h"#define BUILD_F_COMPLEX(real, imag) \  ({ __complex__ float __retval; \     __real__ __retval = (real); \     __imag__ __retval = (imag); \     __retval; })#define BUILD_D_COMPLEX(real, imag) \  ({ __complex__ double __retval; \     __real__ __retval = (real); \     __imag__ __retval = (imag); \     __retval; })#define BUILD_LD_COMPLEX(real, imag) \  ({ __complex__ long double __retval; \     __real__ __retval = (real); \     __imag__ __retval = (imag); \     __retval; })__complex__ floataj_f_times2 (__complex__ float x){  __complex__ float res;  __real__ res = (2.0 * __real__ x);  __imag__ res = (2.0 * __imag__ x);  return res;}__complex__ doubleaj_d_times2 (__complex__ double x){  __complex__ double res;  __real__ res = (2.0 * __real__ x);  __imag__ res = (2.0 * __imag__ x);  return res;}__complex__ long doubleaj_ld_times2 (__complex__ long double x){  __complex__ long double res;  __real__ res = (2.0 * __real__ x);  __imag__ res = (2.0 * __imag__ x);  return res;}intmain (void){#ifdef CHECK_COMPLEX  _Complex float fc, fd;  _Complex double dc, dd;  _Complex long double ldc, ldd;  fc = BUILD_LD_COMPLEX (2.0f, 3.0f);  fd = aj_f_times2 (fc);  assert (__real__ fd == 4.0f && __imag__ fd == 6.0f);  dc = BUILD_LD_COMPLEX (2.0, 3.0);  dd = aj_ld_times2 (dc);  assert (__real__ dd == 4.0 && __imag__ dd == 6.0);  ldc = BUILD_LD_COMPLEX (2.0L, 3.0L);  ldd = aj_ld_times2 (ldc);  assert (__real__ ldd == 4.0L && __imag__ ldd == 6.0L);#endif  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?