UNION in C in Pascal 'absolut'

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Vbxler
Beiträge: 129
Registriert: Sa 25. Mai 2013, 07:43
OS, Lazarus, FPC: Win7_x64 (FPC:4.7.1)
CPU-Target: 32Bit

UNION in C in Pascal 'absolut'

Beitrag von Vbxler »

Ich muss Euch schon wieder belästigen! :(

Das Gegenstueck zur UNION in C ist in Pascal ja eine Sicht mit 'absolute'.

Ich möchte folgendes erreichen:
ich setze bits in einem Array of Boolean und kann dann direkt auf das Ergebnis zugreifen:

Code: Alles auswählen

 
type
Tbp = bitpacked record
  bp : array[0..7] of Boolean; 
var
    a:  Tbp;                      //a:  array[0..7] of Boolean;  //das geht auch nicht 
    x: byte  absolute a;  
begin      
    for iSchleife := 0 to 7 do a.bp[iSchleife]:= false;
 
    a.bp[0] := true;
    a.bp[2] := true;
    a.bp[4] := true;
    ShowMessage(IntToStr(x));  
 
Setze ich kein Bit oder nur Bit0, dann ist das ergebnis richtig, aber bei weiteren Bits bleibt
der Inhalt von x auf = 1. Das hat vermutlich was mit den Speichergrenzen zu tun.
Ich habe es auch schon mit Record mit Variant versucht, geht nicht mit Bitarray,
verwende ich andere Datentypen funktioniert es.

Was muss ich denn tun, damit ich absolut mit einem Bitarray verwenden kann.
Vbxler
-------------------------

Benutzeravatar
theo
Beiträge: 10899
Registriert: Mo 11. Sep 2006, 19:01

Re: UNION in C in Pascal 'absolut'

Beitrag von theo »

bp : bitpacked array[0..7] of Boolean;

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: UNION in C in Pascal 'absolut'

Beitrag von Socke »

Vbxler hat geschrieben:Das Gegenstueck zur UNION in C ist in Pascal ja eine Sicht mit 'absolute'.
Da hab ich am Wochenende ein schönes Zitat gehört: "Das kann man so machen, aber dann ist es halt kacke!"

Unions aus C werden in Pascal mit variant records abgebildet. Das Schlüsselwort absolute bringt nur etwas bei einer einzigen Variablen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Vbxler
Beiträge: 129
Registriert: Sa 25. Mai 2013, 07:43
OS, Lazarus, FPC: Win7_x64 (FPC:4.7.1)
CPU-Target: 32Bit

Re: UNION in C in Pascal 'absolut'

Beitrag von Vbxler »

Danke Theo,
jetzt funktioniert es wie es soll.


Was täte ich blos ohne der tolle Unterstützung hier im Forum!!
Vbxler
-------------------------

Antworten