La extensión de archivo .hh es un formato estándar de archivo de cabecera utilizado principalmente en la programación en lenguajes C y C++. Funciona como un contenedor para declaraciones fundamentales, incluyendo prototipos de funciones, definiciones de clases, constantes y definiciones de macros que están diseñadas para ser compartidas entre múltiples archivos de código fuente. Al organizar estas declaraciones en un archivo .hh, los desarrolladores pueden incorporar el archivo en diversos archivos fuente .cpp o .c mediante el uso de la directiva del preprocesador #include, lo cual fomenta significativamente la modularidad, la reutilización y la facilidad de mantenimiento del código. Aunque la extensión .h es la más convencional para las cabeceras de C y C++, la extensión .hh es empleada específicamente por muchos programadores para indicar de forma explícita que el archivo contiene elementos exclusivos de C++, tales como plantillas de clases (templates) o funciones en línea (inline functions). Esta diferenciación resulta sumamente útil en la organización de proyectos de gran envergadura donde coexisten bases de código de C y C++, permitiendo que tanto los sistemas de construcción (build systems) como los desarrolladores identifiquen con rapidez el contexto del lenguaje del archivo. Se trata de un archivo de texto plano que el preprocesador del compilador analiza y procesa antes de que se inicie la fase de compilación real del código fuente.