Die (Application Binary Interface) gibt die Low-Level-Schnittstelle zwischen den Programmen, Bibliotheken und dem Betriebssystem an. ZB welche Register verwendet werden, um Funktionsparameter zu übergeben.
Ich weiß, dass ein "undefiniertes Verhalten" in C ++ dem Compiler so ziemlich alles ermöglichen kann, was er will. Ich hatte jedoch einen Absturz, der mich überraschte, als ich davon ausging, dass der Code sicher genug war. In diesem Fall trat das eigentliche Problem nur auf einer bestimmten Plattform mit …
Ich habe nie klar verstanden, was ein ABI ist. Bitte verweisen Sie mich nicht auf einen Wikipedia-Artikel. Wenn ich es verstehen könnte, wäre ich nicht hier, um einen so langen Beitrag zu veröffentlichen. Dies ist meine Einstellung zu verschiedenen Schnittstellen: Eine TV-Fernbedienung ist eine Schnittstelle zwischen dem Benutzer und dem …
Ich bin neu in der Linux-Systemprogrammierung und bin beim Lesen der Linux-Systemprogrammierung auf API und ABI gestoßen . Definition der API: Eine API definiert die Schnittstellen, über die eine Software auf Quellenebene mit einer anderen kommuniziert. Definition von ABI: Während eine API eine Quellschnittstelle definiert, definiert ein ABI die binäre …
Gibt es Nachteile beim Übergeben von Strukturen nach Wert in C, anstatt einen Zeiger zu übergeben? Wenn die Struktur groß ist, gibt es offensichtlich den leistungsfähigen Aspekt des Kopierens vieler Daten, aber für eine kleinere Struktur sollte dies im Grunde das gleiche sein wie das Übergeben mehrerer Werte an eine …
Die folgenden Links erläutern die x86-32-Systemaufrufkonventionen für UNIX (BSD-Version) und Linux: http://www.int80h.org/bsdasm/#system-calls http://www.freebsd.org/doc/en/books/developers-handbook/x86-system-calls.html Aber wie lauten die x86-64-Systemaufrufkonventionen unter UNIX und Linux?
In C ++ Warum ist ein Boolescher Wert 1 Byte und nicht 1 Bit groß? Warum gibt es keine Typen wie 4-Bit- oder 2-Bit-Ganzzahlen? Ich verpasse die oben genannten Dinge, wenn ich einen Emulator für eine CPU schreibe
Wie übergebe ich Klassenobjekte, insbesondere STL-Objekte, an und von einer C ++ - DLL? Meine Anwendung muss mit Plugins von Drittanbietern in Form von DLL-Dateien interagieren, und ich kann nicht steuern, mit welchem Compiler diese Plugins erstellt werden. Mir ist bewusst, dass es keine garantierte ABI für STL-Objekte gibt, und …
Ich bereite einige Schulungsmaterialien in C vor und möchte, dass meine Beispiele zum typischen Stapelmodell passen. In welche Richtung wächst ein C-Stack unter Linux, Windows, Mac OSX (PPC und x86), Solaris und den neuesten Unixen?
Angenommen, ich habe drei kompilierte Objekte, die alle von demselben Compiler / derselben Version erstellt wurden : A wurde mit dem C ++ 11-Standard kompiliert B wurde mit dem C ++ 14-Standard kompiliert C wurde mit dem C ++ 17-Standard kompiliert Nehmen wir der Einfachheit halber an, dass alle Header …
Ich schaue mir Chandler Carruths Vortrag auf der CppCon 2019 an: Es gibt keine kostengünstigen Abstraktionen Darin gibt er das Beispiel, wie er überrascht war, wie viel Aufwand Ihnen durch die Verwendung eines std::unique_ptr<int>Over-An entsteht int*. Dieses Segment beginnt ungefähr zum Zeitpunkt 17:25. Sie können sich die Kompilierungsergebnisse seines Beispiel-Snippet-Paares …
Aus dem Wiki Ausführbares und verlinkbares Format : Die Segmente enthalten Informationen, die für die Laufzeitausführung der Datei erforderlich sind, während Abschnitte wichtige Daten zum Verknüpfen und Verschieben enthalten. Jedes Byte in der gesamten Datei kann höchstens einem Abschnitt gehören, und es kann verwaiste Bytes geben, die keinem Abschnitt gehören. …
Betrachten Sie das folgende Beispiel: struct vector { int size() const; bool empty() const; }; bool vector::empty() const { return size() == 0; } Der generierte Assemblycode für vector::empty(durch Klirren, mit Optimierungen): push rax call vector::size() const test eax, eax sete al pop rcx ret Warum wird Stapelspeicher zugewiesen? Es …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.