https://de.wikipedia.org/w/index.php?action=history&feed=atom&title=Linker_%28Computerprogramm%29 Linker (Computerprogramm) - Versionsgeschichte 2025-05-05T10:37:58Z Versionsgeschichte dieser Seite in Wikipedia MediaWiki 1.44.0-wmf.27 https://de.wikipedia.org/w/index.php?title=Linker_(Computerprogramm)&diff=239659784&oldid=prev Dexxor: /* Statisches Linken */ entwickeln ≠ übersetzen 2023-12-02T09:01:05Z <p><span class="autocomment">Statisches Linken: </span> entwickeln ≠ übersetzen</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 2. Dezember 2023, 11:01 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 9:</td> <td colspan="2" class="diff-lineno">Zeile 9:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das ''statische Linken'' erfolgt typischerweise am Ende der [[Softwareentwicklung|Entwicklung des Programms]]. Das Ergebnis ist ein fertig zusammengesetztes Programm, das bei vollständig statisch gelinkten Programmen aus einer einzigen [[Datei]] besteht.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das ''statische Linken'' erfolgt typischerweise am Ende der [[Softwareentwicklung|Entwicklung des Programms]]. Das Ergebnis ist ein fertig zusammengesetztes Programm, das bei vollständig statisch gelinkten Programmen aus einer einzigen [[Datei]] besteht.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Beim statischen Linken werden die Programmmodule der Anwendung einmalig <del style="font-weight: bold; text-decoration: none;">''zum</del> <del style="font-weight: bold; text-decoration: none;">Entwicklungszeitpunkt''</del> aufgelöst, im Gegensatz zum dynamischen Linken, bei dem dies jedes Mal zur [[Laufzeit (Informatik)|Laufzeit]] geschieht.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Beim statischen Linken werden die Programmmodule der Anwendung einmalig <ins style="font-weight: bold; text-decoration: none;">zur</ins> <ins style="font-weight: bold; text-decoration: none;">[[Übersetzungszeit]]</ins> aufgelöst, im Gegensatz zum dynamischen Linken, bei dem dies jedes Mal zur [[Laufzeit (Informatik)|Laufzeit]] geschieht.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Ein Vorteil ist beim statischen Linken die erhöhte [[Portable Software|Portabilität]] einer Anwendung, da diese ''nicht'' auf die Bereitstellung von Programmmodulen z.&amp;nbsp;B. durch das [[Betriebssystem]] angewiesen ist, da die Anwendung diese selbst mitführt; eine [[Installation (Computer)|Installation]] des Programms ist somit nicht erforderlich.&lt;ref&gt;[http://www-vs.informatik.uni-ulm.de/teach/ss10/bs/docs/BS_D1_12_Hauptspeicher.pdf Kapitel über Hauptspeicher, Folie 6] (PDF) informatik.uni-ulm.de ''Betriebssysteme'' – Vorlesung im Hauptstudium&lt;/ref&gt; Nachteile sind ein potentiell höherer [[Speicherbedarf]], da Programmmodule nicht von anderen Programmen mitverwendet werden können, und die Notwendigkeit, die Gesamtanwendung neu zu kompilieren und zu linken, falls für ein Teilmodul eine verbesserte [[Version (Software)|Version]] herausgegeben wurde.&lt;ref name="drepper"&gt;{{cite web|url=http://people.redhat.com/drepper/no_static_linking.html|archiveurl=https://web.archive.org/web/20041221091001/http://people.redhat.com/drepper/no_static_linking.html|archivedate=2004-12-21|title=Static Linking Considered Harmful|author=[[Ulrich Drepper]]|quote=''There are still too many people out there who think (or even insist) that static linking has benefits. This has never been the case and never will be the case. […]''|publisher=redhat.com|language=englisch|accessdate=2012-01-13}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Ein Vorteil ist beim statischen Linken die erhöhte [[Portable Software|Portabilität]] einer Anwendung, da diese ''nicht'' auf die Bereitstellung von Programmmodulen z.&amp;nbsp;B. durch das [[Betriebssystem]] angewiesen ist, da die Anwendung diese selbst mitführt; eine [[Installation (Computer)|Installation]] des Programms ist somit nicht erforderlich.&lt;ref&gt;[http://www-vs.informatik.uni-ulm.de/teach/ss10/bs/docs/BS_D1_12_Hauptspeicher.pdf Kapitel über Hauptspeicher, Folie 6] (PDF) informatik.uni-ulm.de ''Betriebssysteme'' – Vorlesung im Hauptstudium&lt;/ref&gt; Nachteile sind ein potentiell höherer [[Speicherbedarf]], da Programmmodule nicht von anderen Programmen mitverwendet werden können, und die Notwendigkeit, die Gesamtanwendung neu zu kompilieren und zu linken, falls für ein Teilmodul eine verbesserte [[Version (Software)|Version]] herausgegeben wurde.&lt;ref name="drepper"&gt;{{cite web|url=http://people.redhat.com/drepper/no_static_linking.html|archiveurl=https://web.archive.org/web/20041221091001/http://people.redhat.com/drepper/no_static_linking.html|archivedate=2004-12-21|title=Static Linking Considered Harmful|author=[[Ulrich Drepper]]|quote=''There are still too many people out there who think (or even insist) that static linking has benefits. This has never been the case and never will be the case. […]''|publisher=redhat.com|language=englisch|accessdate=2012-01-13}}&lt;/ref&gt;</div></td> </tr> </table> Dexxor https://de.wikipedia.org/w/index.php?title=Linker_(Computerprogramm)&diff=239635152&oldid=prev Acky69: gesch.LZ, zus. Links, Redundanz raus, Ausdruck 2023-12-01T11:21:45Z <p>gesch.LZ, zus. Links, Redundanz raus, Ausdruck</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 1. Dezember 2023, 13:21 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 1:</td> <td colspan="2" class="diff-lineno">Zeile 1:</td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:Linker.svg|mini|200px|[[Bibliothek (Programmierung)#Statische Bibliotheken|Bibliotheken]]<del style="font-weight: bold; text-decoration: none;"> </del>(lib) und/oder Objektdateien<del style="font-weight: bold; text-decoration: none;"> </del>(obj) werden vom Linker zu Bibliotheken, [[Bibliothek (Programmierung)#Dynamische Bibliotheken|Dynamischen Bibliotheken]]<del style="font-weight: bold; text-decoration: none;"> </del>(dll) oder [[Ausführbare Datei|ausführbaren Dateien]]<del style="font-weight: bold; text-decoration: none;"> </del>(exe) zusammengefügt (gelinkt).]]</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:Linker.svg|mini|200px|[[Bibliothek (Programmierung)<ins style="font-weight: bold; text-decoration: none;"> </ins>#Statische Bibliotheken|<ins style="font-weight: bold; text-decoration: none;">(Statische) </ins>Bibliotheken]]<ins style="font-weight: bold; text-decoration: none;">&amp;nbsp;</ins>(lib) und/oder Objektdateien<ins style="font-weight: bold; text-decoration: none;">&amp;nbsp;</ins>(obj) werden vom Linker zu Bibliotheken, [[Bibliothek (Programmierung)<ins style="font-weight: bold; text-decoration: none;"> </ins>#Dynamische Bibliotheken|Dynamischen Bibliotheken]]<ins style="font-weight: bold; text-decoration: none;">&amp;nbsp;</ins>(dll) oder [[Ausführbare Datei|ausführbaren Dateien]]<ins style="font-weight: bold; text-decoration: none;">&amp;nbsp;</ins>(exe) zusammengefügt (gelinkt).]]</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Unter einem '''Linker''' oder '''Binder''' (auch: <del style="font-weight: bold; text-decoration: none;">„Bindelader“</del>) versteht man ein [[Computerprogramm]], das einzelne [[Modul (Software)|Programmmodule]] zu einem ausführbaren Programm zusammenstellt (verbindet). Auf [[IBM]]-[[Großrechner]]systemen wird der Linker ''linkage editor'' (englisch) genannt.&lt;ref&gt;{{Literatur |Hrsg=IBM Corporation |Titel=Operating System 360, Linkage Editor, Program Logic Manual |Ort=New York |Datum=1967}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Unter einem '''Linker''' oder '''Binder''' (auch: <ins style="font-weight: bold; text-decoration: none;">'''Bindelader'''</ins>) versteht man ein [[Computerprogramm]], das einzelne [[Modul (Software)|Programmmodule]] zu einem ausführbaren Programm zusammenstellt (verbindet). Auf [[IBM]]-[[Großrechner]]systemen wird der Linker ''linkage editor'' (englisch) genannt.&lt;ref&gt;{{Literatur |Hrsg=IBM Corporation |Titel=Operating System 360, Linkage Editor, Program Logic Manual |Ort=New York |Datum=1967}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Die meisten Programme enthalten Bestandteile oder Module, die in anderen Programmen <del style="font-weight: bold; text-decoration: none;">Verwendung</del> <del style="font-weight: bold; text-decoration: none;">finden</del> können. Mehrere <del style="font-weight: bold; text-decoration: none;">kompilierte</del> Module mit <del style="font-weight: bold; text-decoration: none;">Funktionen</del> (<del style="font-weight: bold; text-decoration: none;">so genannte</del> ''Objektdateien'') können zu Funktionsbibliotheken (''[[Programmbibliothek]]en'') zusammengefasst werden. Der Code wird durch den Linker zum Hauptprogramm hinzugefügt, falls die entsprechende Funktion benötigt wird.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Die meisten Programme enthalten Bestandteile oder Module, die in anderen Programmen <ins style="font-weight: bold; text-decoration: none;">verwendet</ins> <ins style="font-weight: bold; text-decoration: none;">werden</ins> können. Mehrere <ins style="font-weight: bold; text-decoration: none;">[[kompiliert]]e</ins> Module mit <ins style="font-weight: bold; text-decoration: none;">[[Funktion</ins> (<ins style="font-weight: bold; text-decoration: none;">Programmierung)|Funktionen]]</ins> <ins style="font-weight: bold; text-decoration: none;">(</ins>''Objektdateien'') können zu Funktionsbibliotheken (''[[Programmbibliothek]]en'') zusammengefasst werden. Der <ins style="font-weight: bold; text-decoration: none;">[[Quelltext|</ins>Code<ins style="font-weight: bold; text-decoration: none;">]]</ins> wird durch den Linker zum Hauptprogramm hinzugefügt, falls die entsprechende Funktion benötigt wird.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Um ein Programmmodul in einem anderen Programm verwenden zu können, müssen die symbolischen Adressen der Funktionen und Variablen des Moduls in <del style="font-weight: bold; text-decoration: none;">Speicheradressen</del> umgewandelt werden. Diese Aufgabe übernimmt der Linker. Der Linkvorgang erfolgt nach der [[Kompilierung]] und ist meistens der letzte Arbeitsschritt zur Erstellung eines Programms<del style="font-weight: bold; text-decoration: none;">. Man unterscheidet generell zwischen statischem und dynamischem Linken</del>.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Um ein Programmmodul in einem anderen Programm verwenden zu können, müssen die symbolischen Adressen der Funktionen und <ins style="font-weight: bold; text-decoration: none;">[[Variable (Programmierung)|</ins>Variablen<ins style="font-weight: bold; text-decoration: none;">]]</ins> des Moduls in <ins style="font-weight: bold; text-decoration: none;">[[Speicheradresse]]n</ins> umgewandelt werden. Diese Aufgabe übernimmt der Linker. Der Linkvorgang erfolgt nach der [[Kompilierung]] und ist meistens der letzte Arbeitsschritt zur Erstellung eines Programms.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Statisches Linken ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Statisches Linken ==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Das ''statische Linken'' <del style="font-weight: bold; text-decoration: none;">ist der Vorgang, der</del> typischerweise am Ende der Entwicklung des Programms<del style="font-weight: bold; text-decoration: none;"> erfolgt</del>. Das Ergebnis ist ein fertig zusammengesetztes Programm<del style="font-weight: bold; text-decoration: none;">.</del> <del style="font-weight: bold; text-decoration: none;">Dieses besteht</del> bei vollständig statisch gelinkten Programmen aus einer einzigen [[Datei]].</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Das ''statische Linken'' <ins style="font-weight: bold; text-decoration: none;">erfolgt</ins> typischerweise am Ende der <ins style="font-weight: bold; text-decoration: none;">[[Softwareentwicklung|</ins>Entwicklung des Programms<ins style="font-weight: bold; text-decoration: none;">]]</ins>. Das Ergebnis ist ein fertig zusammengesetztes Programm<ins style="font-weight: bold; text-decoration: none;">,</ins> <ins style="font-weight: bold; text-decoration: none;">das</ins> bei vollständig statisch gelinkten Programmen aus einer einzigen [[Datei]]<ins style="font-weight: bold; text-decoration: none;"> besteht</ins>.</div></td> </tr> <tr> <td class="diff-marker"><a class="mw-diff-movedpara-left" title="Der Absatz wurde verschoben. Klicken, um zur neuen Stelle zu springen." href="#movedpara_11_1_rhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_7_0_lhs"></a><del style="font-weight: bold; text-decoration: none;">Beim statischen Linken wird die Programmmoduleauflösung der Anwendung zum Entwicklungszeitpunkt einmalig durchgeführt, im Gegensatz zum ''dynamischen Linken'', bei dem dies jedes Mal zur Laufzeit geschieht. </del>Ein Vorteil ist beim statischen Linken <del style="font-weight: bold; text-decoration: none;">eine</del> erhöhte [[Portable Software|Portabilität]] einer Anwendung, da diese nicht auf die Bereitstellung von Programmmodulen z.&amp;nbsp;B. durch das Betriebssystem angewiesen ist, da die Anwendung diese selbst mitführt<del style="font-weight: bold; text-decoration: none;">.</del> <del style="font-weight: bold; text-decoration: none;">Eine</del> Installation des Programms ist somit nicht erforderlich.&lt;ref&gt;[http://www-vs.informatik.uni-ulm.de/teach/ss10/bs/docs/BS_D1_12_Hauptspeicher.pdf Kapitel über Hauptspeicher, Folie 6] (PDF) informatik.uni-ulm.de ''Betriebssysteme'' – Vorlesung im Hauptstudium&lt;/ref&gt; Nachteile sind ein potentiell höherer Speicherbedarf, da Programmmodule nicht von anderen Programmen mitverwendet werden können, <del style="font-weight: bold; text-decoration: none;">als auch</del> die Notwendigkeit, die Gesamtanwendung neu zu kompilieren und zu linken, falls für ein Teilmodul eine verbesserte Version herausgegeben wurde.&lt;ref name="drepper"&gt;{{cite web|url=http://people.redhat.com/drepper/no_static_linking.html|archiveurl=https://web.archive.org/web/20041221091001/http://people.redhat.com/drepper/no_static_linking.html|archivedate=2004-12-21|title=Static Linking Considered Harmful|author=[[Ulrich Drepper]]|quote=''There are still too many people out there who think (or even insist) that static linking has benefits. This has never been the case and never will be the case. […]''|publisher=redhat.com|language=englisch|accessdate=2012-01-13}}&lt;/ref&gt;</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Beim statischen Linken werden die Programmmodule der Anwendung einmalig ''zum Entwicklungszeitpunkt'' aufgelöst, im Gegensatz zum dynamischen Linken, bei dem dies jedes Mal zur [[Laufzeit (Informatik)|Laufzeit]] geschieht.</div></td> </tr> <tr> <td class="diff-marker"><a class="mw-diff-movedpara-left" title="Der Absatz wurde verschoben. Klicken, um zur neuen Stelle zu springen." href="#movedpara_11_3_rhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_10_0_lhs"></a>Wegen dieser Nachteile unterstützen einige C-Bibliotheken unter Unix-artigen Betriebssystemen das statische Linken oft nicht mehr vollständig.&lt;ref name="drepper" /&gt; So erzwingt beispielsweise die<del style="font-weight: bold; text-decoration: none;"> </del>[[glibc]] ein dynamisches Linken bei Modulen, die die Benutzer[[authentifizierung]] betreffen. Programme, die diese Module verwenden, sind immer auf die Anwesenheit einer passenden „Laufzeitversion“ der<del style="font-weight: bold; text-decoration: none;"> </del>glibc angewiesen.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker"><a class="mw-diff-movedpara-right" title="Der Absatz wurde verschoben. Klicken, um zur alten Stelle zu springen." href="#movedpara_7_0_lhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_11_1_rhs"></a>Ein Vorteil ist beim statischen Linken <ins style="font-weight: bold; text-decoration: none;">die</ins> erhöhte [[Portable Software|Portabilität]] einer Anwendung, da diese <ins style="font-weight: bold; text-decoration: none;">''</ins>nicht<ins style="font-weight: bold; text-decoration: none;">''</ins> auf die Bereitstellung von Programmmodulen z.&amp;nbsp;B. durch das <ins style="font-weight: bold; text-decoration: none;">[[</ins>Betriebssystem<ins style="font-weight: bold; text-decoration: none;">]]</ins> angewiesen ist, da die Anwendung diese selbst mitführt<ins style="font-weight: bold; text-decoration: none;">;</ins> <ins style="font-weight: bold; text-decoration: none;">eine</ins> <ins style="font-weight: bold; text-decoration: none;">[[</ins>Installation<ins style="font-weight: bold; text-decoration: none;"> (Computer)|Installation]]</ins> des Programms ist somit nicht erforderlich.&lt;ref&gt;[http://www-vs.informatik.uni-ulm.de/teach/ss10/bs/docs/BS_D1_12_Hauptspeicher.pdf Kapitel über Hauptspeicher, Folie 6] (PDF) informatik.uni-ulm.de ''Betriebssysteme'' – Vorlesung im Hauptstudium&lt;/ref&gt; Nachteile sind ein potentiell höherer <ins style="font-weight: bold; text-decoration: none;">[[</ins>Speicherbedarf<ins style="font-weight: bold; text-decoration: none;">]]</ins>, da Programmmodule nicht von anderen Programmen mitverwendet werden können, <ins style="font-weight: bold; text-decoration: none;">und</ins> die Notwendigkeit, die Gesamtanwendung neu zu kompilieren und zu linken, falls für ein Teilmodul eine verbesserte <ins style="font-weight: bold; text-decoration: none;">[[</ins>Version<ins style="font-weight: bold; text-decoration: none;"> (Software)|Version]]</ins> herausgegeben wurde.&lt;ref name="drepper"&gt;{{cite web|url=http://people.redhat.com/drepper/no_static_linking.html|archiveurl=https://web.archive.org/web/20041221091001/http://people.redhat.com/drepper/no_static_linking.html|archivedate=2004-12-21|title=Static Linking Considered Harmful|author=[[Ulrich Drepper]]|quote=''There are still too many people out there who think (or even insist) that static linking has benefits. This has never been the case and never will be the case. […]''|publisher=redhat.com|language=englisch|accessdate=2012-01-13}}&lt;/ref&gt;</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker"><a class="mw-diff-movedpara-right" title="Der Absatz wurde verschoben. Klicken, um zur alten Stelle zu springen." href="#movedpara_10_0_lhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_11_3_rhs"></a>Wegen dieser Nachteile unterstützen einige <ins style="font-weight: bold; text-decoration: none;">[[</ins>C<ins style="font-weight: bold; text-decoration: none;"> (Programmiersprache)|C]]</ins>-Bibliotheken unter <ins style="font-weight: bold; text-decoration: none;">[[Unixoides Betriebssystem|</ins>Unix-artigen Betriebssystemen<ins style="font-weight: bold; text-decoration: none;">]]</ins> das statische Linken oft nicht mehr vollständig.&lt;ref name="drepper" /&gt; So erzwingt beispielsweise die<ins style="font-weight: bold; text-decoration: none;">&amp;nbsp;</ins>[[glibc]] ein dynamisches Linken bei Modulen, die die Benutzer[[authentifizierung]] betreffen. Programme, die diese Module verwenden, sind immer auf die Anwesenheit einer passenden „Laufzeitversion“ der<ins style="font-weight: bold; text-decoration: none;">&amp;nbsp;</ins>glibc angewiesen.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Dynamisches Linken ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Dynamisches Linken ==</div></td> </tr> </table> Acky69 https://de.wikipedia.org/w/index.php?title=Linker_(Computerprogramm)&diff=227844234&oldid=prev Rmcharb: Änderung 227844226 von 94.135.230.190 rückgängig gemacht; keine enzykl. Verbesserung 2022-11-10T11:15:55Z <p>Änderung <a href="/wiki/Spezial:Diff/227844226" title="Spezial:Diff/227844226">227844226</a> von <a href="/wiki/Spezial:Beitr%C3%A4ge/94.135.230.190" title="Spezial:Beiträge/94.135.230.190">94.135.230.190</a> rückgängig gemacht; keine enzykl. Verbesserung</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 10. November 2022, 13:15 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 23:</td> <td colspan="2" class="diff-lineno">Zeile 23:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Funktion &lt;code&gt;void function(int x);&lt;/code&gt; ist eine gänzlich andere als &lt;code&gt;void function(float x);&lt;/code&gt;. Beide Funktionen haben verschiedene Implementierungen, verschiedene Bezeichnungen in der [[Objektcode|Objektdatei]] und haben nichts weiter miteinander zu tun, als dass sie den gleichen Namen tragen. Überladen ist also nur der Funktionsname.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Funktion &lt;code&gt;void function(int x);&lt;/code&gt; ist eine gänzlich andere als &lt;code&gt;void function(float x);&lt;/code&gt;. Beide Funktionen haben verschiedene Implementierungen, verschiedene Bezeichnungen in der [[Objektcode|Objektdatei]] und haben nichts weiter miteinander zu tun, als dass sie den gleichen Namen tragen. Überladen ist also nur der Funktionsname.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Problematisch für das Verständnis und für den Übersetzer sind Aufrufe folgender Art:<del style="font-weight: bold; text-decoration: none;"> Wir müssen das deutsche Schulsystem verändern. Zudem müssen wir die Fächeraufteilung praktischer aufteilen und dafür sorgen ,dass die Schüler wichtige und relevante Informationen bekommen, welche sie im wahren Leben nutzen können.</del></div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Problematisch für das Verständnis und für den Übersetzer sind Aufrufe folgender Art:</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;syntaxhighlight lang="C"&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;syntaxhighlight lang="C"&gt;</div></td> </tr> </table> Rmcharb https://de.wikipedia.org/w/index.php?title=Linker_(Computerprogramm)&diff=227844226&oldid=prev 94.135.230.190 am 10. November 2022 um 11:15 Uhr 2022-11-10T11:15:21Z <p></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 10. November 2022, 13:15 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 23:</td> <td colspan="2" class="diff-lineno">Zeile 23:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Funktion &lt;code&gt;void function(int x);&lt;/code&gt; ist eine gänzlich andere als &lt;code&gt;void function(float x);&lt;/code&gt;. Beide Funktionen haben verschiedene Implementierungen, verschiedene Bezeichnungen in der [[Objektcode|Objektdatei]] und haben nichts weiter miteinander zu tun, als dass sie den gleichen Namen tragen. Überladen ist also nur der Funktionsname.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Funktion &lt;code&gt;void function(int x);&lt;/code&gt; ist eine gänzlich andere als &lt;code&gt;void function(float x);&lt;/code&gt;. Beide Funktionen haben verschiedene Implementierungen, verschiedene Bezeichnungen in der [[Objektcode|Objektdatei]] und haben nichts weiter miteinander zu tun, als dass sie den gleichen Namen tragen. Überladen ist also nur der Funktionsname.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Problematisch für das Verständnis und für den Übersetzer sind Aufrufe folgender Art:</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Problematisch für das Verständnis und für den Übersetzer sind Aufrufe folgender Art:<ins style="font-weight: bold; text-decoration: none;"> Wir müssen das deutsche Schulsystem verändern. Zudem müssen wir die Fächeraufteilung praktischer aufteilen und dafür sorgen ,dass die Schüler wichtige und relevante Informationen bekommen, welche sie im wahren Leben nutzen können.</ins></div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;syntaxhighlight lang="C"&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;syntaxhighlight lang="C"&gt;</div></td> </tr> </table> 94.135.230.190 https://de.wikipedia.org/w/index.php?title=Linker_(Computerprogramm)&diff=226405622&oldid=prev 92.208.169.7: /* Dynamisches Linken */ Keinen Beleg für eine Abweichung der Schreibung des Lemmas gefunden, daher Link auf Lemmanamen angepasst 2022-09-23T10:20:33Z <p><span class="autocomment">Dynamisches Linken: </span> Keinen Beleg für eine Abweichung der Schreibung des Lemmas gefunden, daher Link auf Lemmanamen angepasst</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 23. September 2022, 12:20 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 13:</td> <td colspan="2" class="diff-lineno">Zeile 13:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Dynamisches Linken ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Dynamisches Linken ==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Es ist auch möglich, das Auflösen der Funktions- und Variablennamen zu verschieben, bis das Programm tatsächlich ausgeführt wird. In diesem Fall spricht man von dynamischem Linken. Je nach Betriebssystem geschieht dies durch das Laden vollständiger [[Programmbibliothek#Dynamische Bibliotheken|''dynamischer Bibliotheken'']] (auch bekannt als ''[[Dynamic Link Library|<del style="font-weight: bold; text-decoration: none;">dynamically</del> <del style="font-weight: bold; text-decoration: none;">linked</del> <del style="font-weight: bold; text-decoration: none;">library</del> (DLL)]]'' oder ''shared library'') oder das gezielte Laden eines Unterprogramms aus einer Programmbibliothek. Dies hat den Vorteil, dass Bibliotheken oder Programme nachträglich leicht ausgetauscht werden können, die aufrufenden Programme kleiner werden und der Speicher nur einmal benötigt wird, wenn mehrere Programme dieselben Komponenten verwenden. Der Nachteil besteht darin, dass sichergestellt werden muss, dass die richtige Bibliothek in der richtigen Version installiert ist (siehe z.&amp;nbsp;B. [[DLL-Konflikt]]). Nachgeladene Bibliotheken werden oft als [[Plug-in]]s bezeichnet.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Es ist auch möglich, das Auflösen der Funktions- und Variablennamen zu verschieben, bis das Programm tatsächlich ausgeführt wird. In diesem Fall spricht man von dynamischem Linken. Je nach Betriebssystem geschieht dies durch das Laden vollständiger [[Programmbibliothek#Dynamische Bibliotheken|''dynamischer Bibliotheken'']] (auch bekannt als ''[[Dynamic Link Library|<ins style="font-weight: bold; text-decoration: none;">Dynamic</ins> <ins style="font-weight: bold; text-decoration: none;">Link</ins> <ins style="font-weight: bold; text-decoration: none;">Library</ins> (DLL)]]'' oder ''shared library'') oder das gezielte Laden eines Unterprogramms aus einer Programmbibliothek. Dies hat den Vorteil, dass Bibliotheken oder Programme nachträglich leicht ausgetauscht werden können, die aufrufenden Programme kleiner werden und der Speicher nur einmal benötigt wird, wenn mehrere Programme dieselben Komponenten verwenden. Der Nachteil besteht darin, dass sichergestellt werden muss, dass die richtige Bibliothek in der richtigen Version installiert ist (siehe z.&amp;nbsp;B. [[DLL-Konflikt]]). Nachgeladene Bibliotheken werden oft als [[Plug-in]]s bezeichnet.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Mischformen der statischen und dynamischen Link-Art sind der Normalfall. Dabei werden gewisse Unterprogramme dem aufrufenden Programm statisch hinzugebunden, andere werden dynamisch nachgeladen.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Mischformen der statischen und dynamischen Link-Art sind der Normalfall. Dabei werden gewisse Unterprogramme dem aufrufenden Programm statisch hinzugebunden, andere werden dynamisch nachgeladen.</div></td> </tr> </table> 92.208.169.7 https://de.wikipedia.org/w/index.php?title=Linker_(Computerprogramm)&diff=225065452&oldid=prev Y2kbug: Suchpfad verlinkt 2022-08-04T10:27:28Z <p>Suchpfad verlinkt</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 4. August 2022, 12:27 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 47:</td> <td colspan="2" class="diff-lineno">Zeile 47:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Namenskonflikte ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Namenskonflikte ==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Bei dem Vorgang des Linkens entsteht ein einziger großer, nicht-hierarchischer, gemeinsamer [[Namensraum]]. Dadurch kommt es bei großen oder sehr verzweigten Projekten oft zu Namenskonflikten. Für diese Fälle sind ''weak links'' üblich, bei denen die Linkreihenfolge entscheidet, welches Modul wo verwendet wird. Programmiersprachen wie z.&amp;nbsp;B. [[C++]] lösen das Problem dadurch, dass Modulinhalte über hierarchisch aufgebaute Namen angesprochen werden. Ungelöst bleibt damit jedoch beispielsweise das Problem der Anwesenheit einer Bibliothek in verschiedenen Versionen; das Problem ist zum Zeitpunkt des Linkens nur dadurch lösbar, dass dem Linker je nach benötigter Bibliothek unterschiedliche <del style="font-weight: bold; text-decoration: none;">Suchpfade</del> mitgegeben werden – jede der in Frage kommenden Bibliotheken unterscheidet sich zwar von der Bezeichnung her, ist aber inhaltlich für einen Linker ununterscheidbar, da in ihr die gleichen Symbole vorhanden sind. Nach dem ersten, statischen Linken ist die Angelegenheit dagegen unproblematisch, da sich die verwendete Bibliothek von da an anhand ihres Namens aufrufen lässt.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Bei dem Vorgang des Linkens entsteht ein einziger großer, nicht-hierarchischer, gemeinsamer [[Namensraum]]. Dadurch kommt es bei großen oder sehr verzweigten Projekten oft zu Namenskonflikten. Für diese Fälle sind ''weak links'' üblich, bei denen die Linkreihenfolge entscheidet, welches Modul wo verwendet wird. Programmiersprachen wie z.&amp;nbsp;B. [[C++]] lösen das Problem dadurch, dass Modulinhalte über hierarchisch aufgebaute Namen angesprochen werden. Ungelöst bleibt damit jedoch beispielsweise das Problem der Anwesenheit einer Bibliothek in verschiedenen Versionen; das Problem ist zum Zeitpunkt des Linkens nur dadurch lösbar, dass dem Linker je nach benötigter Bibliothek unterschiedliche <ins style="font-weight: bold; text-decoration: none;">[[Suchpfad]]e</ins> mitgegeben werden – jede der in Frage kommenden Bibliotheken unterscheidet sich zwar von der Bezeichnung her, ist aber inhaltlich für einen Linker ununterscheidbar, da in ihr die gleichen Symbole vorhanden sind. Nach dem ersten, statischen Linken ist die Angelegenheit dagegen unproblematisch, da sich die verwendete Bibliothek von da an anhand ihres Namens aufrufen lässt.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Literatur ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Literatur ==</div></td> </tr> </table> Y2kbug https://de.wikipedia.org/w/index.php?title=Linker_(Computerprogramm)&diff=219249384&oldid=prev ZabesBot: Bot: Räume alte Interwikilinks auf 2022-01-16T22:11:56Z <p>Bot: Räume alte Interwikilinks auf</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 17. Januar 2022, 00:11 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 94:</td> <td colspan="2" class="diff-lineno">Zeile 94:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:Programmierwerkzeug]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:Programmierwerkzeug]]</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><br /></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[tr:Bağlayıcı]]</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> </table> ZabesBot https://de.wikipedia.org/w/index.php?title=Linker_(Computerprogramm)&diff=208852070&oldid=prev Aka: /* Überschreiben */ Abkürzung korrigiert 2021-02-15T18:03:39Z <p><span class="autocomment">Überschreiben: </span> Abkürzung korrigiert</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 15. Februar 2021, 20:03 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 44:</td> <td colspan="2" class="diff-lineno">Zeile 44:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Überschreiben ===</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Überschreiben ===</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Mit dem vom „Überladen“ zu unterscheidenden „[[Überschreiben (OOP)|Überschreiben]]“ wird ein [[Dynamische Bindung|dynamisches Binden]] bezeichnet, das im Programmablauf entsprechend reagiert, wenn im Quelltext eine Methode (d.h. ein Unterprogramm) einer Basisklasse von der gleichnamigen und gleich parametrisierten Methode der abgeleiteten Klasse überdeckt wird. Zur Laufzeit wird diejenige Methode gerufen, die der Instanz der Daten entspricht. Das wird durch die [[Tabelle virtueller Methoden]] ermöglicht, einem Grundkonzept der Implementation von [[Objektorientierte Programmierung|objektorientierter Programmierung]].</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Mit dem vom „Überladen“ zu unterscheidenden „[[Überschreiben (OOP)|Überschreiben]]“ wird ein [[Dynamische Bindung|dynamisches Binden]] bezeichnet, das im Programmablauf entsprechend reagiert, wenn im Quelltext eine Methode (d.<ins style="font-weight: bold; text-decoration: none;">&amp;nbsp;</ins>h. ein Unterprogramm) einer Basisklasse von der gleichnamigen und gleich parametrisierten Methode der abgeleiteten Klasse überdeckt wird. Zur Laufzeit wird diejenige Methode gerufen, die der Instanz der Daten entspricht. Das wird durch die [[Tabelle virtueller Methoden]] ermöglicht, einem Grundkonzept der Implementation von [[Objektorientierte Programmierung|objektorientierter Programmierung]].</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Namenskonflikte ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Namenskonflikte ==</div></td> </tr> </table> Aka https://de.wikipedia.org/w/index.php?title=Linker_(Computerprogramm)&diff=205949594&oldid=prev 87.254.97.74: /* Überschreiben */ Klarstellungen 2020-11-26T10:48:07Z <p><span class="autocomment">Überschreiben: </span> Klarstellungen</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 26. November 2020, 12:48 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 44:</td> <td colspan="2" class="diff-lineno">Zeile 44:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Überschreiben ===</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Überschreiben ===</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Mit dem vom „Überladen“ zu unterscheidenden „[[Überschreiben (OOP)|Überschreiben]]“ wird ein [[Dynamische Bindung|dynamisches Binden]] bezeichnet, <del style="font-weight: bold; text-decoration: none;">bei</del> <del style="font-weight: bold; text-decoration: none;">dem</del> eine Methode (ein Unterprogramm) einer Basisklasse von der gleichnamigen und gleich parametrisierten Methode der abgeleiteten Klasse überdeckt wird. Zur Laufzeit wird diejenige Methode gerufen, die der Instanz der Daten entspricht. Das wird<del style="font-weight: bold; text-decoration: none;"> vermittelt</del> durch die [[Tabelle virtueller Methoden]], <del style="font-weight: bold; text-decoration: none;">ein</del> Grundkonzept der [[Objektorientierte Programmierung|<del style="font-weight: bold; text-decoration: none;">objektorientierten</del> Programmierung]].</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Mit dem vom „Überladen“ zu unterscheidenden „[[Überschreiben (OOP)|Überschreiben]]“ wird ein [[Dynamische Bindung|dynamisches Binden]] bezeichnet, <ins style="font-weight: bold; text-decoration: none;">das</ins> <ins style="font-weight: bold; text-decoration: none;">im Programmablauf entsprechend reagiert, wenn im Quelltext</ins> eine Methode (<ins style="font-weight: bold; text-decoration: none;">d.h. </ins>ein Unterprogramm) einer Basisklasse von der gleichnamigen und gleich parametrisierten Methode der abgeleiteten Klasse überdeckt wird. Zur Laufzeit wird diejenige Methode gerufen, die der Instanz der Daten entspricht. Das wird durch die [[Tabelle virtueller Methoden]]<ins style="font-weight: bold; text-decoration: none;"> ermöglicht</ins>, <ins style="font-weight: bold; text-decoration: none;">einem</ins> Grundkonzept der<ins style="font-weight: bold; text-decoration: none;"> Implementation von</ins> [[Objektorientierte Programmierung|<ins style="font-weight: bold; text-decoration: none;">objektorientierter</ins> Programmierung]].</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Namenskonflikte ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Namenskonflikte ==</div></td> </tr> </table> 87.254.97.74 https://de.wikipedia.org/w/index.php?title=Linker_(Computerprogramm)&diff=205944302&oldid=prev 87.254.97.74: /* Sprachspezifische Varianten beim Laden */ Beim zweiten Lesen fiel mir die unterschiedliche Verwendung von "realisieren" auf. 2020-11-26T06:25:06Z <p><span class="autocomment">Sprachspezifische Varianten beim Laden: </span> Beim zweiten Lesen fiel mir die unterschiedliche Verwendung von &quot;realisieren&quot; auf.</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 26. November 2020, 08:25 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 19:</td> <td colspan="2" class="diff-lineno">Zeile 19:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Sprachspezifische Varianten beim Laden ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Sprachspezifische Varianten beim Laden ==</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Überladen ===</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Überladen ===</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Unter „[[Überladen]]“ wird das mehrfache Definieren eines Unterprogramms mit gleichem Bezeichner in Abhängigkeit von der Parameterauswahl verstanden, realisiert durch interne Umbenennung (engl. ''name mangling''). Die nachstehenden Beispiele sind nur in C++ oder Java möglich, ''nicht'' aber in reinem C, wo die Überladung von Funktionen nicht vorgesehen ist und der Versuch, eine solche zu <del style="font-weight: bold; text-decoration: none;">realisieren</del>, einen Übersetzungsfehler auslösen würde.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Unter „[[Überladen]]“ wird das mehrfache Definieren eines Unterprogramms mit gleichem Bezeichner in Abhängigkeit von der Parameterauswahl verstanden, realisiert durch interne Umbenennung (engl. ''name mangling''). Die nachstehenden Beispiele sind nur in C++ oder Java möglich, ''nicht'' aber in reinem C, wo die Überladung von Funktionen nicht vorgesehen ist und der Versuch, eine solche zu <ins style="font-weight: bold; text-decoration: none;">verlangen</ins>, einen Übersetzungsfehler auslösen würde.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Funktion &lt;code&gt;void function(int x);&lt;/code&gt; ist eine gänzlich andere als &lt;code&gt;void function(float x);&lt;/code&gt;. Beide Funktionen haben verschiedene Implementierungen, verschiedene Bezeichnungen in der [[Objektcode|Objektdatei]] und haben nichts weiter miteinander zu tun, als dass sie den gleichen Namen tragen. Überladen ist also nur der Funktionsname.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Funktion &lt;code&gt;void function(int x);&lt;/code&gt; ist eine gänzlich andere als &lt;code&gt;void function(float x);&lt;/code&gt;. Beide Funktionen haben verschiedene Implementierungen, verschiedene Bezeichnungen in der [[Objektcode|Objektdatei]] und haben nichts weiter miteinander zu tun, als dass sie den gleichen Namen tragen. Überladen ist also nur der Funktionsname.</div></td> </tr> </table> 87.254.97.74