Je lis à l'époque le "Effective C ++" écrit par Meyers et suis tombé sur le terme "unité de traduction".
Quelqu'un pourrait-il me donner des explications sur:
1) Qu'est-ce que c'est exactement
2) Quand devrais-je envisager de l'utiliser lors de la programmation avec C ++
3) S'il n'est lié qu'à C ++, ou s'il peut être utilisé avec d'autres langages de programmation
Je pourrais déjà l'utiliser sans connaître le terme ....
Réponses:
À partir d' ici : ( lien vers la machine de retour )
la source
Une unité de traduction est à toutes fins utiles un fichier (.c / .cpp), une fois terminé, y compris tous les fichiers d'en-tête.
http://msdn.microsoft.com/en-us/library/bxss3ska%28VS.80%29.aspx
la source
Une question difficile à répondre définitivement. La norme C ++ stipule:
Donc, pour la plupart des intentions et des fins, une unité de traduction est un seul fichier source C ++ et l'en-tête ou d'autres fichiers qu'elle inclut via le mécanisme de pré-processeur #include.
Concernant vos autres questions:
Vous ne pouvez pas ne pas le considérer - les unités de traduction sont la base d'un programme C ++.
D'autres langues ont des concepts similaires, mais leur sémantique sera subtilement différente. La plupart des autres langues n'utilisent pas de préprocesseur, par exemple.
la source
Le livre le montre assez clairement. Lorsque Meyers fait référence à une «unité de traduction», il désigne un fichier de code source.
la source
En plus de l'ODR, l'unité de traduction est importante dans la définition des espaces de noms sans nom, qui remplace l'une des anciennes utilisations de "statique".
Je suppose que je n'ai toujours pas assez de points pour ajouter un commentaire sous la réponse du haut.
la source
Une unité de traduction est un code qui est transmis au compilateur proprement dit. Cela signifie généralement la sortie de l'exécution du préprocesseur sur le fichier .c.
la source
Les programmes C et C ++ sont constitués d'un ou plusieurs fichiers source, chacun contenant une partie du texte du programme. Un fichier source, ainsi que ses fichiers d'inclusion (fichiers qui sont inclus à l'aide de la directive de préprocesseur #include) mais n'incluant pas les sections de code supprimées par les directives de compilation conditionnelle telles que #if, est appelé une "unité de traduction".
la source
Selon MSDN : les programmes C et C ++ se composent d'un ou de plusieurs fichiers source, chacun contenant une partie du texte du programme. Un fichier source, ainsi que ses fichiers d'inclusion (fichiers qui sont inclus à l'aide de la directive de préprocesseur #include) mais n'incluant pas les sections de code supprimées par les directives de compilation conditionnelle telles que #if, est appelé une "unité de traduction".
la source
Chaque fichier cpp / c (implémentation) sera converti en unité de traduction (c.-à-d., Fichier objet (.obj)) Les en-têtes du fichier cpp seront remplacés par le texte réel des fichiers d'en-tête.
la source
Comme d'autres l'ont dit, une unité de traduction est essentiellement le contenu d'un fichier source après prétraitement. C'est la production la plus élevée de la grammaire linguistique; vous n'auriez à vous en préoccuper que si vous écriviez un compilateur C ou C ++.
la source
À mon avis, une «unité de traduction» est généralement un seul fichier source de «post-prétraitement». Vous pouvez obtenir plus de détails sur cette page MSDN. http://msdn.microsoft.com/en-us/library/bxss3ska(v=vs.80).aspx
la source