Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 21.06.2004, 18:16 Titel: Variablentyp in einer Variablen |
|
|
Hi,
gibt es in VC++ irgendeine Möglichkeit, Variablentypen in einer Variable zu speichern. Das klingt vielleicht erst ein bisschen paradox, aber ich will einfach nur variable Typen haben.
D.h. dass z.B. eine short reserviert wird(oder ein integer/long/etc...).
Das würde mir viel Code sparen.
Bsp-Pseudo:
Code: | if(xy) variablentyp=BYTE;
else variablentyp=int;
variablentyp kontext_abhaenige_variable=5;
|
_________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
HotAcid Super JLI'ler

Alter: 43 Anmeldedatum: 04.08.2002 Beiträge: 372 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 21.06.2004, 18:53 Titel: |
|
|
sieh dir mal ne union an:
Code: |
typedef union blabla
{
int a;
char* bla;
vector<ganzKomplizierterDatentyp> v;
} blabla;
|
es wird soviel Platz reserviert, wie für den größten Datentyp notwendig ist. Die Union kann dann genau einen Datentyp enthalten, oben also ENTWEDER ein int ODER ein char* ODER nen vector. Zugriff erfolgt dann wie bei structs/Klassen über ->, also blabla.a = 5
bei der Syntax bin ich mir da jetzt nicht extrem sicher, also nochmal nachsehen
viele Grüße
Felix _________________ StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht. |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.06.2004, 19:04 Titel: |
|
|
@HotAcid
Ich glaub nicht das er sowas gesucht hat denn so muss er immer noch explizit angeben welchen Datentyp er denn wählen möchte. Er möchte ja nur
blablabla.Variablentyp=int ;
zum setzen und
blablabla.Variablentyp a=0;
zum verwenden, aber ehrlich gesagt glaube ich nicht das sowas möglich ist. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 21.06.2004, 19:13 Titel: |
|
|
Vieleicht könnte man ne Klasse schreiben:
enum eTyp{int, short, usw.}
class UniversalVariable
{
SetTyp(eTyp)
eTyp mTyp;
union()//siehe odeb
operator +
operator -
usw.
}
in der Operatoren könnte man je nach verwendeten Typ anders definiern.
Hoffentlich kann man das jetz kapieren _________________ https://jonathank.de/games/ |
|
Nach oben |
|
 |
Christian Rousselle Site Admin

Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 21.06.2004, 19:22 Titel: |
|
|
Das mit dem enum wird nicht klappen, man kann keine Typen aufzählen. Ev. kommt man mit templates weiter.
C. |
|
Nach oben |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 21.06.2004, 19:30 Titel: |
|
|
Ich meinte das mit dem enum auch eher so:
enum(INT, SHORT)
also nicht die Typen sondern nur quasi ein Symbol für den Typ. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 21.06.2004, 20:47 Titel: |
|
|
Hmm...ich verstehe noch nicht ganz, was eine Union ist.
Auf den ersten Blick sieht das ja gleich wie eine Klasse oder Struktur aus.
Aber was ist da anders?  _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.06.2004, 20:51 Titel: |
|
|
bei einer union teilen sich alle elemente die gleiche Anfangsadresse.
Code: | ..union.. {
int a;
float b;
} |
angenommen a hat die adresse 0xC000000
dann hat b die adresse 0xC000000
man sollte das aber nicht damit verwechseln das beide einträge den gleichen inhalt haben, sonst kann man schnell ein blaues Wunder erleben. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 21.06.2004, 21:00 Titel: |
|
|
Aha...
dann kann man sozusagen mit einer Union Speicher reservieren und wenn sie eine BYTE-Variable hat, greift man eben nur auf die ersten 8 Bits zu.(Stimmt das jetzt?) _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.06.2004, 21:11 Titel: |
|
|
aber warum sollte man eine union nur für eine BYTE machen
aber ja es stimmt so _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 21.06.2004, 21:13 Titel: |
|
|
Schau dir mal typeid() u.ä. an. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.06.2004, 21:49 Titel: |
|
|
typeid liefert dir auch nur ne zeichenkette/klasse zurück mit der er aber keine dynamischen variyblen erzeugen kann die immer wieder andere typen haben können. Allerdings frage ich mich wirklich wozu du das brauchst. Sag mal. Vieleicht können wir dich wieder auf den redlichen Pfad Gottes leiten  _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 22.06.2004, 12:04 Titel: |
|
|
Vielleicht könnte man da Boost::any verwenden.
Ich habe Boost allerdings nie verwendet und kenne mich damit nicht aus. |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 22.06.2004, 14:09 Titel: |
|
|
FallenAngel84 hat Folgendes geschrieben: | Allerdings frage ich mich wirklich wozu du das brauchst. Sag mal. Vieleicht können wir dich wieder auf den redlichen Pfad Gottes leiten  |
Also gut...*gg*
Ich brauche das für das JLI-Format.
Manchmal ändert sich eben nur die größe einer Variable bzw. die Anzahl von Bytes, die für einen Wert reserviert(und in die Datei geschrieben) werden.
Bloß wäre es mühsamer, für BYTE, short, uint, etc... jeweils einzeln die Codeabschnitte zu kopieren und abzuändern. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 22.06.2004, 14:13 Titel: |
|
|
Gehen templates nicht ? _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
|