5.79 Complex numbers in C99

In C99 mode, the compiler supports complex and imaginary numbers. In GNU mode, the compiler supports complex numbers only.

For example:

#include <stdio.h>
#include <complex.h>
int main(void)
    complex float z = 64.0 + 64.0*I;
    printf("z = %f + %fI\n", creal(z), cimag(z));
    return 0;

The complex types are:

  • float complex.

  • double complex.

  • long double complex.

Related concepts
5.63 New language features of C99
5.65 // comments in C99 and C90
5.66 Compound literals in C99
5.67 Designated initializers in C99
5.68 Hexadecimal floating-point numbers in C99
5.69 Flexible array members in C99
5.70 __func__ predefined identifier in C99
5.71 inline functions in C99
5.72 long long data type in C99 and C90
5.73 Macros with a variable number of arguments in C99
5.74 Mixed declarations and statements in C99
5.75 New block scopes for selection and iteration statements in C99
5.76 _Pragma preprocessing operator in C99
5.77 Restricted pointers in C99
5.64 New library features of C99
5.78 Additional <math.h> library functions in C99
5.80 Boolean type and <stdbool.h> in C99
5.81 Extended integer types and functions in <inttypes.h> and <stdint.h> in C99
5.82 <fenv.h> floating-point environment access in C99
5.83 <stdio.h> snprintf family of functions in C99
5.84 <tgmath.h> type-generic math macros in C99
5.85 <wchar.h> wide character I/O functions in C99
Non-ConfidentialPDF file icon PDF versionARM DUI0472J
Copyright © 2010-2013 ARM. All rights reserved.