- direttiva Il #include non discrimina i tipi di file (è solo un'operazione di copia-incolla glorificato) - l'aggiunta di nessun automatica di .h sta accadendo.
- C++ file di intestazione standard sono forniti senza l'estensione h
- file di intestazione compatibilità all'indietro Talvolta sono forniti dal fornitore con lo stesso nome con l'estensione h aggiunto
Tutto ha a che fare con i namespace . Le controparti .h per C++ intestazioni standard di solito # include la corretta intestazione C++ standard (senza .h estensione) e poi emette un mucchio di utilizzare (qualcosa di simile):
FILE: iostream.h
#include <iostream>
using std::iostream;
using std::ostream;
using std::ios;
...
mentre il file di intestazione senza l'estensione .h non inquina lo spazio dei nomi con tutte le classi e tipi definiti.
fonte
2009-05-23 09:51:54
Duplicato: http://stackoverflow.com/questions/441568/when-can-you-omit-the-file-extension-in-an-include-directive – GManNickG
Grazie a @GMan. La mia ricerca in SO e Google non ha rivelato questo. Questo perché la domanda collegata è leggermente diversa. Ad ogni modo, sento che la risposta di Michael Burr risponde alla mia domanda. –