If a file with the same name as a standard header is placed in the search path for included source files, the behavior is undefined.
The following table from the C Standard, section 7.1.2 [ISO/IEC 9899:2011], lists these standard headers:
<assert.h> | <complex<float.h> | <math.h> | <ctype<stdatomic.h> | <errno<stdlib.h> | <fenv<time.h> | <float
<complex.h> | <inttypes.h> | <setjmp.h> | <iso646<stdbool.h> | <limits<stdnoreturn.h> | <locale<uchar.h> |
<ctype.h> | <setjmp<iso646.h> | <signal.h> | <stdarg<stddef.h> | <stdbool<string.h> | <stddef<wchar.h> |
<errno.h> | <stdio<limits.h> | <stdlib<stdalign.h> | <string<stdint.h> | <tgmath.h> | <wctype.h> |
<fenv.h> | <time<locale.h> | <uchar<stdarg.h> | <wchar<stdio.h> | <wctype<threads.h> |
Do not reuse standard header file names, system-specific header file names, or other header file names.
...