From cppreference.com
Defined in header <complex.h>
#define I /* unspecified */
(since C99)

The I macro expands to either Complex_I or Imaginary_I. If the implementation does not support imaginary types, then the macro always expands to Complex_I.

A program may undefine and perhaps then redefine the imaginary macro.

[edit] See also

(C99)
the complex unit constant i
(macro constant)
the imaginary unit constant i
(macro constant)