How about
typedef struct {
double real;
double imag;
} Py_complex;
This is same as MSVC’s (which doesn’t have complex types from the C standard point of view) _Dcomplex (well, at least for some versions). Does the standard guarantee that this has same memory representation as array of two doubles? I don’t think so.
It’s minor, yes.