Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Sprachfeature mit Verzweigung in record-Definition (https://www.delphipraxis.net/122290-sprachfeature-mit-verzweigung-record-definition.html)

BloodySmartie 13. Okt 2008 13:10


Sprachfeature mit Verzweigung in record-Definition
 
Hallo zusammen!

Ich verstehe die folgenden Zeilen Code nicht, die mir heute über den Weg gelaufen sind:

Delphi-Quellcode:
 _BLUETOOTH_ADDRESS = record
    case Integer of
      0: (ullLong: BTH_ADDR);      //  easier to compare again BLUETOOTH_NULL_ADDRESS
      1: (rgBytes: array [0..5] of Byte);  //  easier to format when broken out
  end;
Sowas habe ich persönlich noch nicht gesehen. Ich verstehe nicht, was für ein Integer hier ausgewertet wird und ich verstehe auch nicht, was in den einzelnen Fällen dann mit dem record passiert. Wenn der Integer 0 oder 1 ist, ändert sich dann der Typ des records oder was??!?!?!

Hülfe! :pale:

jfheins 13. Okt 2008 13:38

Re: Sprachfeature mit Verzweigung in record-Definition
 
Das ist ein Varianter Record (in C++ als union bekannt)

1. Es gibt gar keinen Integer, in dem Record, das iist nur ein Sprachkonstrukt ;)

2. Das wird datz benutzt, um denselben Speicher auuf mehrere Arten anzusteuern. Du kannst also ein BTH_ADDR reintun, und auf dieselben Bits als Array[0..5] of Byte zugreifen ;)

Alles Klar?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz