valor predeterminado de __PTRDIFF_TYPE__

Veo que es legal usar la variable __PTRDIFF_TYPE__ sin inclusión de encabezado.

Intenté buscar este nombre de variable en ISO/IEC 9899 pero no aparece. Esperaba ver su definición en la séptima parte, biblioteca C.

¿Por qué es legal?

Estoy usando el gcc bajo Linux / GNU.

Esta es una macro predefinida en gcc (una extensión C de GNU); vea https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html .

En cuanto a por qué esto es legal: el estándar reserva todos los nombres que comienzan con dos guiones bajos (y todos los nombres que comienzan con un guión bajo seguido de una letra mayúscula) para su uso por parte de la implementación, por lo que gcc podría predefinir cualquier __whatever y seguir el estándar.