Pourquoi ne " comprennent <iostream>` fin, y compris afin de *nombreux* les fichiers?

StackOverflow https://stackoverflow.com/questions/1848286

  •  13-09-2019
  •  | 
  •  

Question

Le suivi de cette question:

Quand je fais include <iostream>.
Il arrive qu'elle comprend de nombreux fichiers à partir de /usr/include .Un grep "\usr\include" plus g++ -E prog.cpp compté pour environ 1260 entrées ;).

C'est leur moyen de contrôle, y compris des fichiers différents?
Plate-forme:Linux
G++ version:4.2.4

Était-ce utile?

La solution

Non, <iostream> les comprend car elle dépend directement, ou il est en dépendent dépendances.

est-ce pas vous ne pouvez rien faire à ce sujet.

Vous pouvez (en fonction de votre compilateur) limiter l'effet que cela a sur le temps de compilation en utilisant en-têtes précompilés

Autres conseils

Ma suggestion est de ne pas se soucier du nombre de fichiers que le compilateur est compris.Se concentrer davantage sur l'exactitude, la robustesse, la et l'annexe.Si le temps de construction est une préoccupation, d'obtenir une machine plus rapide, de construire pour la nuit, aller sur une promenade, ou de diviser le code en plus petits les unités de traduction.Les unités de traduction doit être assez petit pour contenir du code qui ne change pas souvent. Les changements sont le MAL.

La fondation de la construction du système est de compiler uniquement quelques fichiers qui ont changé.Si votre processus de développement fonctionne correctement, le temps de génération de résider de plus en plus le lien entre la phase à mesure que le projet se développe.

Si le temps de compilation est encore longue, voir si votre compilateur prend en charge les en-têtes précompilés.En général, cette méthode est pour le compilateur de stocker toutes les déclarations et les définitions dans une forme plus efficace.

Vous #include <iostream> lorsque vous devez utiliser les flux. Cela devrait définir certaines choses dont vous avez besoin. Dans quelle mesure l'activité dont il a besoin de faire est une question de qualité de mise en œuvre. Vous pouvez supprimer des fichiers de /usr/include, mais qui briserait les choses.

Je doute vraiment qu'il est compris 1260 fichiers. Presque certainement la plupart des personnes sont entrées en double qui ne chargent rien, mais ne sont pas élagués de la sortie -E.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top