Dr. Deo
Noté que la biblioteca boost usa archivos de encabezado de (.hpp
).
Tengo curiosidad ya que la mayoría de los archivos fuente que veo usan normal .h
archivos de cabecera.
¿Podría haber alguna instancia especial que justifique el uso de .hpp
en lugar de .h
?
Gracias
Sólo convención, nada especial. Puede usar cualquier extensión en los archivos de inclusión, en realidad.
.hpp, .H, etc. es una convención flexible para los archivos de encabezado de C++, .tcc es una convención flexible para la implementación de plantillas de C++, .h es una convención bastante sólida para los archivos c.
Boost usa la extensión hpp, QT usa la extensión .h, STL no tiene extensión. Estoy seguro de que hay bibliotecas que usan .H pero no he visto ninguna.
-
No creo que Qt use ninguna extensión en absoluto.
– Veeti
11 de febrero de 2010 a las 19:56
-
QT 3 usó en gran medida la extensión .h, pero Qt 4 parece estar migrando para no tener extensión, ya que la mayoría de los encabezados también tienen contrapartes .h.
– desvanecimiento gris
11 de febrero de 2010 a las 20:48
Efectivamente, Octavio tiene razón.
Uso hpp / h para diferenciar entre los dos idiomas cuando construyo productos de idiomas mixtos. Por ejemplo, una definición de clase podría ir en un .hpp (implementación en .cpp), mientras que un archivo .h definiría solo funciones admitidas por C. Para hacer esta separación, es importante saber la diferencia entre los idiomas, para este fin. Paso *.c a través de gcc y *.cpp a través de g++.
El propósito de #include "filename"
directiva de preprocesador es reemplazar la #include
línea con el contenido de filename
.
De hecho, cualquier nombre para el archivo funcionaría, pero como suele ser la convención, los archivos de inclusión son “.h” o “.hpp”. Una ventaja es el resaltado de sintaxis en el editor de su elección (vim en mi caso).
Escuché que también es algo común que los programadores de UNIX y Linux usen .hh y .cc en lugar de .cpp y .h. Personalmente, me gusta llamar a mis archivos de encabezado .hh porque ayuda a emacs a distinguir entre el resaltado de sintaxis C y C++. También uso la extensión .cc porque se ve bien junto con .hh y es más corta que .cpp. Y suelo programar en y para entornos Linux.
Raveendra Pai U
simplemente le está diciendo al compilador que incluya el archivo dado en su código durante la compilación. así que no importa qué extensión tenga el archivo. Pero preferiblemente debería ser un archivo de texto.
stackoverflow.com/questions/2146207/…
– luego
11 de febrero de 2010 a las 19:32