www.mikrocontroller.net

Forum: Compiler & IDEs Eine Variable, 2 Typen


Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe da ein Problem, habe bereits im Forum geschaut, mein Problem 
ähnelt diesem hier:
Beitrag "Kollision zweier Typendefinitionen vermeiden"
allerdings nicht genau, und dort scheint sich die Sache ausgeschwiegen 
zu haben.

Nun, mein Problem:

Angenommen ich habe eine Variable namens "var".
Diese Variable soll nun wahlweise vom Datentyp A und wahlweise von 
Datentyp B sein. Der Datentyp der Variable wird zur Laufzeit festgelegt.

Wie mache ich das?

Ich habe schon allerhand getüftelt aber ich komme nicht dahinter...

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
union?

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist sizeof("Datentyp A") gleich sizeof("Datentyp B")?
 Wenn ja, sollte eine union helfen. Man kann sich auch etwas mit 
typcasts, void-pointern, Konvertierungsfunktionen und/oder einer 
Universalstruktur a la "variant" aus VB u.ä. zusammenbasteln. 
Problembeschreibung ist zumindest mir aber zu grob, um einen brauchbaren 
Antwortversuch zu unternehmen.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wie mache ich das?

Am besten gar nicht. Wenn doch, mit gecasteten Pointern.

Oliver

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oliver wrote:
>>Wie mache ich das?
>
> Am besten gar nicht. Wenn doch, mit gecasteten Pointern.

Nein, wie andere schon schrieben: mit einer union.  Der Weg ist vom
C-Standard gedeckt.  Bei Zeigern ist nur die Umwandelbarkeit eines
Objektzeigers in einen void * und zurück in den Objektzeiger vom
Standard gedeckt.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nein, wie andere schon schrieben: mit einer union.

Ich kann jetzt falsch liegen. Aber mein Gefühl sagt mir, dass der TO den 
falschen Baum anpinkelt und jetzt Symptome kurieren will anstatt das 
eigentliche Problem zu lösen. Weiß nicht warum, ist nur so ein Gefühl

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:

> Ich kann jetzt falsch liegen. Aber mein Gefühl sagt mir, dass der TO den
> falschen Baum anpinkelt und jetzt Symptome kurieren will anstatt das
> eigentliche Problem zu lösen.

Kurz vor dem Kaputtgehen hat meine Glaskugel ähnliches gemurmelt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.