conmplex.hを使うと複素数を使えます。変数の宣言は、
#include <complex.h> ... int main () { double _Complex z; int _Complex a; return 0; }
とかそんな感じ。
に詳しい。complex.hを使うときに特にオプションは必要ない模様。大体複素数使うときは数学関数を使うのでmath.hを使ってるから-lmオプションが実は必要なのかもしれない。使えてしまってるのであんまし気にしてない。
complex.hでサポートされてる関数については、
にのってます。