- La directive #include ne discrimine pas les types de fichiers (il est juste une opération copier-coller glorifiée) - ne se passe automatiquement l'ajout de .h.
- C fichiers d'en-tête standard de sont fournis sans l'extension .h
- fichiers d'en-tête de compatibilité parfois en arrière sont fournis par le vendeur du même nom avec l'extension .h ajouté
Il a tout à voir avec namespaces . Les homologues .h pour les en-têtes C++ standard #Includes habituellement l'en-tête approprié C++ standard (sans .h extension) et délivre ensuite un tas d'utiliser (quelque chose comme ça):
DOSSIER: iostream.h
#include <iostream>
using std::iostream;
using std::ostream;
using std::ios;
...
alors que le fichier d'en-tête sans l'extension .h ne pollue pas l'espace de noms avec toutes les classes et types définis.
Dupliquer: http://stackoverflow.com/questions/441568/quand-peut-vous-obtenir-l'extension-du-fichier-dans-include-directive – GManNickG
Merci @GMan. Ma recherche dans SO et Google n'a pas révélé cela. C'est parce que la question liée est un peu différente. Quoi qu'il en soit, je pense que la réponse de Michael Burr répond à ma question. –