Was ist eine "Übersetzungseinheit" in C ++?
Ich lese zur Zeit die "effective C++" geschrieben von Meyers
und stieß auf den Begriff "translation unit".
Könnte jemand bitte geben Sie mir eine Erklärung:
1) Was genau ist es
2) Wann sollte ich in Erwägung ziehen, es bei der Programmierung mit C++
3) Wenn es nur in Bezug auf C++, oder es kann verwendet werden, mit anderen Programmiersprachen
Ich vielleicht schon, ohne es zu wissen, der Begriff....
InformationsquelleAutor der Frage Harry | 2009-07-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom hier: (wayback machine link)
InformationsquelleAutor der Antwort JeffH
Einer übersetzungseinheit ist, für alle Absichten und Zwecke eine Datei (.c/.cpp), nach es fertig ist einschließlich aller header-Dateien.
http://msdn.microsoft.com/en-us/library/bxss3ska%28VS.80%29.aspx
InformationsquelleAutor der Antwort Paul Betts
Eine schwierige Frage zu beantworten, definitiv. Der C++ - standard besagt:
Also für die meisten Absichten und Zwecke eine übersetzungseinheit ist eine einzige C++ - source-Datei und die header-oder andere Dateien enthält, die über die Präprozessor - #include " - Mechanismus.
Bezüglich deiner anderen Fragen:
Können Sie nicht nicht in Betracht ziehen - übersetzung-Einheiten sind die basis eines C++ - Programms.
Andere Sprachen haben ähnliche Konzepte, aber Ihre Semantik wird auf subtile Weise anders. Die meisten anderen Sprachen, nicht mit einem Präprozessor, zum Beispiel.
InformationsquelleAutor der Antwort
Das Buch macht es deutlich genug. Wenn Meyers referes zu einer "translation Unit", meint er, eine source-code-Datei.
InformationsquelleAutor der Antwort Ed S.
Neben der ODR, die übersetzungs-Einheit ist wichtig in der definition des Unbenannte namespaces, die an die Stelle der alten verwendet von "static".
Ich glaube, ich habe noch nicht genug Punkte, um einen Kommentar hinzufügen, der unter die top-Antwort.
InformationsquelleAutor der Antwort Allan Stokes
Einer übersetzungseinheit ist code, der an den compiler übergeben ordnungsgemäße. Dies bedeutet normalerweise, dass die Ausgabe durch die Ausführung des Präprozessor auf .c-Datei.
InformationsquelleAutor der Antwort sigjuice
C-und C++ - Programme bestehen aus einer oder mehreren source-Dateien, von denen jede enthält einige der text des Programms. Eine Quellcode-Datei, zusammen mit seiner include-Dateien (Dateien mit der #include-Präprozessor-Direktive), aber nicht einschließlich code-Abschnitte entfernt, die durch bedingte compilation-Direktiven wie #if, nennt man "translation unit".
InformationsquelleAutor der Antwort ganesh marmat
Laut MSDN: C-und C++ - Programme bestehen aus einer oder mehreren source-Dateien, von denen jede enthält einige der text des Programms. Eine Quellcode-Datei, zusammen mit seiner include-Dateien (Dateien mit der #include-Präprozessor-Direktive), aber nicht einschließlich code-Abschnitte entfernt, die durch bedingte compilation-Direktiven wie #if, nennt man "translation unit".
InformationsquelleAutor der Antwort rahul
Jede cpp/c (Umsetzung) - Datei umgewandelt werden in eine translation unit (ie.,Objekt-Datei (.obj)) - Header in der cpp-Datei, die ersetzt werden, mit dem text im header-Dateien.
InformationsquelleAutor der Antwort yesraaj
Wie schon andere gesagt haben, eine übersetzung Einheit ist im Grunde der Inhalt einer Quell-Datei nach der Vorverarbeitung. Es ist die oberste Produktion in der Sprache der Grammatik; Sie würden sich nur sorgen machen müssen, wenn Sie schreiben eine C-oder C++ - compiler.
InformationsquelleAutor der Antwort John Bode
Meiner Ansicht nach, eine "translation unit" ist in der Regel ein einzelner "post-Vorverarbeitung" Quell-Datei. Mehr details erfahren Sie auf dieser MSDN-Seite. http://msdn.microsoft.com/en-us/library/bxss3ska(v=vs. 80).aspx
InformationsquelleAutor der Antwort Yang