C Interview Questions and Answers


What is a good way to implement complex numbers in C?

It is straightforward to define a simple structure and some arithmetic functions
to manipulate them. C99 supports complex as a standard type. Here is a tiny example,
to give you a feel for it:

typedef struct {

double real;

double imag;

} complex;

#define Real(c) (c).real

#define Imag(c) (c).imag

complex cpx_make(double real, double imag)


complex ret;

ret.real = real;

ret.imag = imag;

return ret;


complex cpx_add(complex a, complex b)


return cpx_make(Real(a) + Real(b), Imag(a) + Imag(b));


You can use these routines with code like

complex a = cpx_make(1, 2);

complex b = cpx_make(3, 4);

complex c = cpx_add(a, b);

or, even more simply,

complex c = cpx_add(cpx_make(1, 2), cpx_make(3, 4));

Posted by:Richards