- directiva #include El no discrimina tipos de archivo (que es sólo una operación de copiar y pegar glorificado) - la adición de ningún automática de .h que está sucediendo. archivos de encabezado estándar
- C++ se proporcionan sin la extensión .h
- archivos de cabecera de la compatibilidad hacia atrás A veces son proporcionados por el proveedor con el mismo nombre con la extensión .h añadido
Todo tiene que ver con los espacios de nombres . Los homólogos .h para C++ cabeceras estándar generalmente # incluye el correcto encabezado de C++ estándar (sin la extensión .h) y luego emite un montón de utilizar (algo así):
ARCHIVO: iostream.ho
#include <iostream>
using std::iostream;
using std::ostream;
using std::ios;
...
mientras que el archivo de cabecera sin la extensión .h no contamina el espacio de nombres con todas las clases y tipos definidos.
Duplicado: http://stackoverflow.com/questions/441568/when-can-you-omit-the-file-extension-in-an-include-directive – GManNickG
Gracias @GMan. Mi búsqueda en SO y Google no reveló esto. Eso es porque la pregunta vinculada es un poco diferente. De todos modos, creo que la respuesta de Michael Burr aborda mi pregunta. –