Z
Ok,... heute ist Samstag,.. heute ist Senftag
krümelkacker schrieb:
zeusosc schrieb:
..gerade weil alle zeiger auf dem gleichen system die gleiche breite haben....
Eine solche Garantie macht der C++ Standard nicht, auch nicht, wenn man sich
auf "Objekt-Zeiger" beschränkt und Member-Pointer sowie Funktionszeiger außen
vor lässt. Es soll Maschinen geben, bei denen 1=sizeof(int*)<sizeof(char*) gilt.
Echt? Das garantiert mir vlt. nicht die ISO, aber es garantiert mir die
architektur die ich mit meinen source versorge.
Auf einem 32bit system der x86 architektur ist die addresse immer 32bit breit,
wohingegen 8bit systeme der RISC architektur auch 16bit breite addressen
unterstützen (müssen) da der stack oft größer als 256 Byte Ram ist,
aber selbst dort ist jeder 16bit offset ptr als low und high fragment nur
jeweils 8bit groß.
krümelkacker schrieb:
btw: Hier gibt es keine Zuweisungen. Das sind Initialisierungen. Der Unterschied: Bei einer Zuweisung gibt es das Ziel-Objekt schon vorher.
Ja, das object existiert ja auch schon vorher.
double a(1.0f);
double b=1.0f;
double c;
c=1.0f;
sind 100% äquivalent.
Das liegt an der interpretation der objekt construction.
Für den Compiler sind das alles Copy-Ctor's, erst Object initialisieren,
dann zuweisen! Und bei der zuweisung interpretiert, wie oben gesagt,
der Compiler den RVALUE als zieltypen.
(Insofern eine passende zuweisungsregel vorliegt).
(willste den asm ausdruck sehen???? Das macht gcc und msvc so)
--------------------------
krümelkacker schrieb:
Ich verstehe nicht Deine Obsession bzgl Implementierungsdetails des Compilers von Microsoft.
Hehe, jeder hat doch seine macken, nicht?
Nein mal ehrlich: Wenn ich weiß, wie der Compiler, in meinem fall ist es halt
MSVC (Mit gcc habe ich aber auch schon gearbeitet, für µC's jedenfalls),
meine routinen, zuweisungen, callconventions, implementiert, weiß ich
was ich wie verwenden darf, damit das gemacht wird was ich will.
Also den umgang mit ptr's, egal ob es ein offset für eine function /member ist,
ob es ein offset für einen weiteren ptr ist usw, habe ich nicht in TP,VB,C/C++
gelernt, sondern in asm.
Also bitte ich um verständniss und um rücksicht wenn ich mir (und vlt auch euch)
klar machen will, was der compiler vor dem assembler eigentlich macht.
------------------
Seid alle gegrüßt und nicht ärgern lassen