data-representation

___ answer759343 ___

const_cast verwirft nur die Konstanz eines Attributs und nichts mehr.

    
___ qstntxt ___

Stimmt es, dass const_cast nur eine Möglichkeit ist, dem Compiler zu sagen: "Hör auf zu jammern, behandle das als nicht-konstanten Zeiger"? Gibt es Fälle, in denen const_cast selbst in tatsächlichen Maschinencode übersetzt wird?

    
___ answer759359 ___

Denkbar wäre, dass es Architekturen geben könnte, bei denen ein const-Zeiger eine andere Darstellung als eine nicht-konstante hätte, in diesem Fall müsste der Compiler etwas Code ausgeben. Mir sind solche Architekturen jedoch nicht bekannt.

    
___ qstnhdr ___ Führt const_cast jemals zu tatsächlicher Code-Emission? ___ answer759329 ___

Nein, es entfernt nur das Attribut const zur Kompilierzeit.

    
___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ tag123const ___ Const ist ein Qualifikationsmerkmal, das zum Definieren eines Datenspeicherbereichs (Objekt, Feld, Variable, Parameter) verwendet wird, der sich "nie ändert", wodurch zusätzliche Codegeneratoroptimierungen und zusätzliche statische Überprüfung der Programmkorrektheit ermöglicht werden. ___ answer11585337 ___

%code% ändert nicht die Darstellung eines Typs, insbesondere ist die Darstellung von %code% genau gleich %code% .

Überlegen Sie:

%Vor%

Die Repräsentation von %code% zur selben Zeit repräsentiert eine %code% und eine %code% via %code% .

Die Darstellung von %code% kann nicht geändert werden, wenn %code% initialisiert ist.

Natürlich, wenn die Zeigerobjekte nicht signifikante Bits haben, kann der Compiler sie zufällig umdrehen; Insbesondere kann %code% die nicht signifikanten Bits eines Zeigers spiegeln, aber auch jede implizite Konvertierung könnte dies tun. Ich glaube nicht, dass dieser Fall in der realen Welt existiert.

Dasselbe gilt, wenn zwei verschiedene Bitmuster denselben Adresswert ergeben (Basis + Offset, wenn Offset groß genug ist).

    
___ tag123memorymodel ___ Änderungen an verschiedenen Speicherorten können in unterschiedlicher Reihenfolge auf verschiedenen Threads oder auf verschiedenen Prozessoren erscheinen. Speichermodelle beschreiben, welche Neuordnungen möglich sind und welche Maßnahmen ergriffen werden müssen, um eine unerwünschte Neuordnung zu vermeiden. ___ tag123datarepräsentation ___ hilf uns dieses Wiki zu bearbeiten ___ tag123constcast ___ Alles in Zusammenhang mit der Operation 'const_cast' in C ++, d. h. eine Form der Kompilierungskonvertierung, bei der die Konstanten 'const' oder 'volatile' aus einer Variablen weggeworfen (entfernt) werden. ___
3
Antworten

Wie stelle ich einen Binärbaum mit Tabellen (html) dar?

Hier ist ein Brain Teaser für die Mutigen. Ich bin seit Tagen dabei und kann einfach nicht mit der Lösung kommen. Ich wollte mit so etwas kommen: Nur HTML, CSS und PHP verwenden. Ich kam näher, aber nicht ganz so, wie ich es erwarte...
26.09.2011, 16:49
4
Antworten

Führt const_cast jemals zu tatsächlicher Code-Emission?

Stimmt es, dass const_cast nur eine Möglichkeit ist, dem Compiler zu sagen: "Hör auf zu jammern, behandle das als nicht-konstanten Zeiger"? Gibt es Fälle, in denen const_cast selbst in tatsächlichen Maschinencode übersetzt wird?     
17.04.2009, 07:04