If you use <complex.h> before you include a file from ctl you'll get name collisions for the I macro.
I generally recommend using longer names or a prefix like CTL_I, CLT_A...
This also applies to clt.h, since names like CAT are often used by other code.
You should also consider using different include guards, since e.g. __CTL_H__ is a reserved identifier, because it begins with two underscores.
If you use
<complex.h>before you include a file from ctl you'll get name collisions for theImacro.I generally recommend using longer names or a prefix like
CTL_I,CLT_A...This also applies to
clt.h, since names likeCATare often used by other code.You should also consider using different include guards, since e.g.
__CTL_H__is a reserved identifier, because it begins with two underscores.