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.