Cada encabezado estándar tiene una especificación de lo que expone o puede exponer. dirent.h
expone struct dirent
, DIR
, y las funciones relevantes, y reserva nombres que comienzan con d_
. Algunos encabezados también están permitidos pero no requeridos para exponer cosas expuestas por otros encabezados determinados; dirent.h
no es uno de estos. Entonces indirectamente incluyendo limits.h
sería una violación del espacio de nombres y rompería los programas conformes que asumen que pueden usar nombres que limits.h
expondría para sus propios identificadores.
¿Por qué Cd no es un programa?