How about
typedef struct Complex { double r; double i;} Complex;
And define all the needed function, e.g.
Complex add(Complex x, Complex y) { Complex z; z.r = x.r+y.r; z.i=x.i+y.i; return z; }
Etc.
Usage:
Complex a...; Complex b...; Complex c = add(a, b);
Cheers
Andi
PS: or you use the predefined
<complex.h>
implementation of the latest C standard as suggested in solution #2.