Tipe kompleks ada dalam bahasa C sejak standar C99 ( -std=c99
opsi GCC). Beberapa kompiler mungkin mengimplementasikan tipe kompleks bahkan dalam mode yang lebih awal, tetapi ini adalah ekstensi non-standar dan non-portabel (misalnya IBM XL, GCC, mungkin intel, ...).
Anda dapat mulai dari http://en.wikipedia.org/wiki/Complex.h - ini memberikan deskripsi fungsi dari complex.h
Panduan ini http://pubs.opengroup.org/onlinepubs/009604499/basedefs/complex.h.html juga memberikan beberapa info tentang makro.
Untuk mendeklarasikan variabel kompleks, gunakan
double _Complex a; // use c* functions without suffix
atau
float _Complex b; // use c*f functions - with f suffix
long double _Complex c; // use c*l functions - with l suffix
Untuk memberi nilai menjadi kompleks, gunakan _Complex_I
makro dari complex.h
:
float _Complex d = 2.0f + 2.0f*_Complex_I;
(sebenarnya mungkin ada beberapa masalah di sini dengan (0,-0i)
angka dan NaN di setengah kompleks tunggal)
Modul adalah cabs(a)
/ cabsl(c)
/ cabsf(b)
; Bagian sebenarnya adalah creal(a)
, Imajiner cimag(a)
. carg(a)
adalah untuk argumen yang kompleks.
Untuk langsung mengakses (membaca / menulis) bagian gambar nyata, Anda dapat menggunakan ekstensi GCC yang tidak dapat dibawa ini :
__real__ a = 1.4;
__imag__ a = 2.0;
float b = __real__ a;