Könnten moderne x86-Prozessoren nicht in der Lage sein, ein einzelnes Byte im Speicher zu speichern?
Das Rätsel der Behauptung von Bjarne Stroustrup:
In Stroustrups Buch schlägt er vor, dass dies bei einigen modernen Prozessoren der Fall sein könnte nicht in der Lage, Objekte zu speichern, die kleiner als ein Wort sind. Allerdings scheinen alltägliche Programmiererfahrungen dem zu widersprechen. Wir können Bytes problemlos speichern, wie ein einfaches C-Programm zeigt, das den Wert eines Bytes festlegt und ausgibt.
Die Verwirrung auflösen:
Stroustrups Aussage könnte tatsächlich Beziehen Sie sich bei der Ausführung von Bytespeicheranweisungen auf die interne Funktionsweise von CPUs. Einige CPUs verwenden möglicherweise atomare Lese-, Änderungs- und Schreibvorgänge, um eine Cache-Zeile zu aktualisieren, die das Zielbyte enthält. Dieser interne Mechanismus ist jedoch für den Programmierer unsichtbar und verändert weder das Ergebnis noch die Richtigkeit der Bytespeicher.
Speichermodell moderner Hardware:
In modernen CPUs Bytespeicher sind atomar und haben keinen Einfluss auf benachbarte Bytes. Dies wird durch klar definierte Speichermodelle gewährleistet, die definieren, wie Hardware Speichervorgänge handhabt.
Der Mythos der Byte-Store-Instabilität:
Die Idee, dass Byte-Stores beschädigt werden könnten benachbarte Bytes ist obsolet. Alle modernen (Nicht-DSP-)Architekturen, einschließlich x86, verfügen über Bytespeicheranweisungen, die architektonisch so konzipiert sind, dass benachbarte Bytes nicht gestört werden.
Schlussfolgerung:
Während Stroustrups Aussage mag in der Vergangenheit zutreffend gewesen sein, ist aber auf moderne x86-Hardware nicht mehr anwendbar. Bytespeicher sind zuverlässig und von grundlegender Bedeutung für die C-Programmierung.
Das obige ist der detaillierte Inhalt vonKönnen moderne x86-Prozessoren wirklich kein einziges Byte speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!