Re: Wie = überladen für Zeigerzuweisung?
From: Christian Knapmeyer (knapmeyer_at_cms.tecmath.de)
Date: 02/18/04
- Next message: Martin Richter [MVP]: "Re: Radiobuttons aktivieren/deaktivieren"
- Previous message: Andreas Günther: "Re: Wie = überladen für Zeigerzuweisung?"
- In reply to: Andreas Günther: "Re: Wie = überladen für Zeigerzuweisung?"
- Next in thread: Andre Stille [MVP]: "Re: Wie = überladen für Zeigerzuweisung?"
- Reply: Andre Stille [MVP]: "Re: Wie = überladen für Zeigerzuweisung?"
- Reply: Andreas Günther: "Re: Wie = überladen für Zeigerzuweisung?"
- Messages sorted by: [ date ] [ thread ]
Date: Wed, 18 Feb 2004 11:59:29 +0100
"Andreas Günther" <usenset19.3.angus@spamgourmet.com> schrieb :
> >struct Page {
> > BYTE Type;
> > BYTE WriteFlag;
> > BYTE Data[1014];
> > UINT Nr;
> > UINT CRC;
> >};
...
> Was sollte ein anderer Compiler beim Strukturaufbau anders machen?
> Oder ist das nicht im Standard festgelegt, wie die Variablen einer
> solchen Struktur (mit Pragma) im speicher angelegt werden
> (Reihenfolge, Position, ...)?
Die Reihenfolge ist so festgelegt, dass alle nichtstatischen Member innerhalb
eines "public/protected/private"-Abschnitts im Speicher aufsteigend angeordnet
sein müssen. Es ist dem Compiler aber überlassen, wie er die einzelnen
public/protected/private-Abschnitte innerhalb einer Klasse anordnet.
In Deinem Fall kannst Du Dich also auf die Reihenfolge verlassen, aber
nicht auf das Alignment.
Das #pragma pack() ist auch nicht standardisiert.
Im Standard steht nur, dass "#pragma" als Precompiler-Direktive
existiert, aber alles was dahinter steht ist dem jeweiligen Compiler
überlassen. Wenn der Compiler eine bestimmte #pragma-Anweisung
nicht kennt, soll er sie ignorieren.
Sowas wie #pragma pack() kennt wohl jeder Compiler (muss er
aber nicht), nur dass es u.U. anders heißt.
Auch der Typ UINT ( = unsigned int) ist nicht festgelegt.
Ein int kann z.B. 16 Bit, 32 Bit oder 64 Bit groß sein.
Der Standard macht darüber keine Vorschriften.
Gruß,
Christian
- Next message: Martin Richter [MVP]: "Re: Radiobuttons aktivieren/deaktivieren"
- Previous message: Andreas Günther: "Re: Wie = überladen für Zeigerzuweisung?"
- In reply to: Andreas Günther: "Re: Wie = überladen für Zeigerzuweisung?"
- Next in thread: Andre Stille [MVP]: "Re: Wie = überladen für Zeigerzuweisung?"
- Reply: Andre Stille [MVP]: "Re: Wie = überladen für Zeigerzuweisung?"
- Reply: Andreas Günther: "Re: Wie = überladen für Zeigerzuweisung?"
- Messages sorted by: [ date ] [ thread ]