2010-02-11 41 views

risposta

18

Proprio congressi, niente di speciale. È possibile utilizzare qualsiasi estensione su include file, in realtà.

1

Infatti, Otavio ha ragione.

Uso hpp/h per distinguere tra le due lingue quando si creano prodotti in lingua mista. Ad esempio, una definizione di classe potrebbe andare in un .hpp (implementazione in .cpp), mentre un file .h definirà solo le funzioni supportate da C. Per fare questa separazione è importante conoscere la differenza tra le lingue - a tal fine Passo * .c attraverso gcc e * .cpp attraverso g ++.

4

.hpp, .H, ecc. È una convenzione allentata per i file di intestazione C++, .tcc è una convenzione allentata per l'implementazione di modelli C++, .h è una convenzione piuttosto valida per i file c.

Boost utilizza l'estensione hpp, QT utilizza l'estensione .h, l'estensione STL non ha estensione. Sono sicuro che ci sono librerie che usano .H ma non ne hanno visto nessuno.

+0

non credo che Qt utilizza qualsiasi estensione a tutti. – Veeti

+2

QT 3 ha usato in gran parte l'estensione .h, ma Qt 4 sembra migrare fino a non avere estensioni, poiché la maggior parte delle intestazioni ha anche le controparti .h. – greyfade

1

Lo scopo della direttiva preprocessore #include "filename" è sostituire la riga #include con il contenuto di filename.
Quindi qualsiasi nome per il file dovrebbe essere, ma come capita di essere la convenzione i file di inclusione sono ".h" o ".hpp", Un vantaggio è l'evidenziazione della sintassi in editor di tua scelta (vim nel mio caso).

0

Ho sentito che è anche piuttosto comune per i programmatori UNIX e Linux utilizzare .hh e .cc anziché .cpp e .h. Personalmente mi piace nominare i miei file header .hh perché aiuta emacs a distinguere tra l'evidenziazione della sintassi C e C++. Uso anche l'estensione .cc perché sembra buona insieme a .hh ed è più corta di .cpp. E di solito faccio il mio codice per e per ambienti Linux.

0

si sta solo dicendo al compilatore di includere il file specificato nel codice durante la compilazione. quindi non importa quale estensione ha il file. Ma preferibilmente dovrebbe essere un file di testo.

Problemi correlati