I was reading the linux features test macro page and in the NOTES section it states that:
<features.h> is a Linux/glibc-specific header file. Other systems have an analogous file, but typically with a different name. This header file is automatically included by other header files as required: it is not necessary to explicitly include it in order to employ feature test macros.
I understand that other systems wouldn't have the same filename as features.h, and therefore you shouldn't include it directly. But then, if you don't include the header file, how do you know if you can use the features test macros?