même en-tête de fichier en plusieurs fichiers source dans un programme c++

Si le même fichier d'en-tête est inclus dans plusieurs fichiers sources dans un programme c++, alors comment fait-il effet de la compilation ( en Particulier g++ ) ?

Sera le compilateur charger le fichier d'en-tête une seule fois et de le compiler pour chaque fichier source qui inclut l'en-tête ou le fichier d'en-tête sera chargé séparément pour chaque fichier source qui l'inclut .

Comment les fichiers d'en-tête sont chargés est, autant que je sache, n'est pas spécifié dans la compilation C++ modèle. La mise en œuvre peut choisir de charger une fois, le chargement sur demande (pour tous les fichiers source), ou de la charge d'une autre façon bizarre inimaginable par mon finis cerveau.
fondamentalement #include *.h signifie "à" remplacer tout le texte à partir de *.h fichier ici
Conceptuellement, chaque fichier que vous compilation est un regard nouveau sur l'en-tête. En réalité, il ya une assez bonne chance que votre compilateur prend en charge une certaine forme de pré-compilés en-têtes, de sorte qu'il compile le code source de certains forme intermédiaire, puis utilise que lorsqu'il compile les autres fichiers qui contiennent le même en-tête.
Est-il une chance pour que le compilateur g++ est optimisé pour charger un fichier d'en-tête une seule fois, même sur de multiples appelant à partir de différents fichiers source ?S'il vous plaît confirmer.
il ne peuvent absolument. Les en-têtes précompilés sont une chose commune et n'ont pas à être stocké en mémoire dans un processus unique. Ils peuvent facilement être écrites sur le disque et utilisées plus tard par les processus suivants.

OriginalL'auteur Biraj Bora | 2013-05-31