Forum: Programmieren allgemein
Delphi
by himitsu,
17. Apr 2018
Drum hatte ich es eigentlich auch nur nebenbei erwähnt.
Aber ansonsten wurde auch schon alles Wichtige genannt.
* die Speicherausrichtung
* die Art der Typen (z.B. AnsiChar und WideChar, aber nicht Char)
Arrays werden wie ihr enthaltener Typ ausgerichtet, außer bei "packed array",
und bei Records wie ihr größter Typ, außer bei "packed record".
Forum: Programmieren allgemein
Delphi
by himitsu,
17. Apr 2018
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Standard_Routines_and_Input-Output
var F: file of TSTChannel;
Eines reicht. Es ist Alles das Gleiche.
{$A+} = {$ALIGN ON} = {$ALIGN 8} wobei 8 der DEFAULT ist
{$A-} = {$ALIGN OFF} = {$ALIGN 1}
{$ALIGN 8} // ab hier 8
TSTChannel = record
Forum: Programmieren allgemein
Delphi
by himitsu,
17. Apr 2018
PS: das "gute" alte file of TMyRecord funktioniert immernoch.
Externe Records NIEMALS pur definiert, sondern ausschließlich PACKED oder mit explizitem {$ALIGN x} (direkt davor oder über die ganze Datei)
und {$ALIGN 1} = PACKED, egal ob Datei, Stream oder sonstwas.
denn du willst ja nicht, dass sich die Ausrichtugn irgendwann mal ändert und es dann nicht mehr zu deiner Datei passt.
Extern...