Si bien pueden ser útiles para usted como una forma de documentación, el sistema que rodea los archivos de encabezado es extraordinariamente ineficiente.
C fue diseñado para que cada paso de compilación construya un solo módulo; cada archivo fuente se compila en una ejecución separada del compilador. Los archivos de encabezado, por otro lado, se inyectan en ese paso de compilación para cada uno de los archivos de origen que hacen referencia a ellos.
Esto significa que si su archivo de encabezado se incluye en 300 archivos de origen, entonces se analiza y compila una y otra vez, 300 veces por separado mientras se construye su programa. Exactamente lo mismo con el mismo resultado, una y otra vez. Esta es una gran pérdida de tiempo, y es una de las principales razones por las que los programas C y C ++ tardan tanto en construirse.
Todos los idiomas modernos evitan intencionalmente esta pequeña ineficiencia absurda. En cambio, normalmente en los lenguajes compilados, los metadatos necesarios se almacenan en la salida de compilación, lo que permite que el archivo compilado actúe como una especie de referencia de búsqueda rápida que describe lo que contiene el archivo compilado. Todos los beneficios de un archivo de encabezado, creado automáticamente sin trabajo adicional de su parte.
Alternativamente en idiomas interpretados, cada módulo que se carga permanece en la memoria. Hacer referencia o incluir o requerir alguna biblioteca leerá y compilará el código fuente asociado, que permanece residente hasta que finaliza el programa. Si también lo necesita en otro lugar, no hay trabajo adicional ya que ya se ha cargado.
En cualquier caso, puede "examinar" los datos creados por este paso utilizando las herramientas del idioma. Por lo general, el IDE tendrá un navegador de clase de algún tipo. Y si el lenguaje tiene un REPL, a menudo también se puede usar para generar un resumen de la documentación de los objetos cargados.