Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   record mit case - wie sag ichs in C? (https://www.delphipraxis.net/107374-record-mit-case-wie-sag-ichs-c.html)

SnuffMaster23 26. Jan 2008 18:40


record mit case - wie sag ichs in C?
 
Ich habe folgende records:
Delphi-Quellcode:
TVector = record
  x, y, z: Double;
end;

TVertex = record
  u, v: Double;
  case Integer of
    0: (nx, ny, nz,
        x, y, z: Double);
    1: (Normal,
        Position: TVector);
end;
TVector hat man in C ja gleich hingeschrieben, aber wie siehts mit TVertex aus? Alle meine Versuche mit struct und union sind bisher gescheitert. Entweder kennt mir die IDE TVertex nicht und dafür zwei namenlose structs oder TVertex hat nur u und v :?
Ich möchte den TVertex in C genauso benutzen können wie in Delphi und keine dreiteiligen Namen schreiben müssen (z.B MyVertex.doubles.ny oder MyVertex.Vectors.Normal). In C ist doch so gut wie alles möglich, das muss doch gehen :)

mkinzler 26. Jan 2008 18:43

Re: record mit case - wie sag ichs in C?
 
Code:
union

SnuffMaster23 26. Jan 2008 19:15

Re: record mit case - wie sag ichs in C?
 
Natürlich union, hab ich oben ja geschrieben^^
Aber es lag mal wieder an meiner eigenen Blödheit (Semikolon weiter oben vergessen :D), mein erster Versuch scheint doch richtig zu sein:
Code:
struct TVertex
{
  double u, v;
  union
  {
    struct
    {
      double nx, ny, nz,
               x, y, z;
    };
    struct
    {
      TVector Normal,
              Position;
    };
  };
};
Sicher sagen kann ichs noch nicht, ich krieg noch Fehlermeldungen in Dateien vom Compiler :(

//Edit: Jo geht tatsächlich :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 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