Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

13.07.2006, 18:14

Variablen in 2 Dateien?

Hi,

ich hatte schon öfters das Problem (Wie viele andere sicher auch) dass ich
mehrere Variablen in 2 verschiedenen Dateien brauche. Das Problem ist
ja, dass extern nicht gerade die Beste Lösung ist und globale Variablen
sowieso nicht. Ich habe diese Variablen in eine Header Datei in den
Namespace geschrieben. Dort sollten sie auch schon initialisiert werden um
Fehler zu vermeiden. Jetzt ist die Frage: Wie bekomme ich diese Variablen
in diese 2 Dateien ohne Linker Errors mit "alredy defined in" zu bekommen.
Oder geht das sogar ohne eine Header Datei zu verwenden? Hoffe
auf eine Antwort ;)

rklaffehn

Treue Seele

Beiträge: 267

Wohnort: Braunschweig

  • Private Nachricht senden

2

13.07.2006, 18:47

Meinst du Variablen oder Konstanten? Letztere wären ja einfach.

Andernfalls wirst du um globale Variablen mit einer "extern" Deklaration kaum rumkommen, ausser, du sammelst sie in einem Singleton (der letztlich auch nichts anderes, als eine globale Variable ist).

MfG,
Rainer
God is real... unless declared integer.
http://www.boincstats.com/signature/user_967277_banner.gif

Anonymous

unregistriert

3

13.07.2006, 18:48

Wozu globale Variablen? Wofür soll die denn da sein?

Anonymous

unregistriert

4

13.07.2006, 18:52

Surfaces, deren Beschreibungen, Clipper und DDraw Objekt und es werden
sicherlich noch mehr. In der einen Datei ist halt die WinMain mit der
WindowProc, wo dann auch gezeichnet werden soll und in der anderen
wird DDraw initialisiert und wieder gelöscht.

Anonymous

unregistriert

5

13.07.2006, 18:58

www.germangamedev.de << funny break ;)

keine globale variable ;)

Anonymous

unregistriert

6

13.07.2006, 19:36

Okay danke nix da, das Tutorial ist echt nur zu empfehlen ;)

Chase

Alter Hase

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

7

13.07.2006, 20:38

Re: Variablen in 2 Dateien?

Eins versteh ich nicht:

Zitat von »"DarkRaider"«

Das Problem ist ja, dass extern nicht gerade die Beste Lösung ist und globale Variablen
sowieso nicht.

Wenn man eine globale Variable erstellt, bedeutet dass doch einfach dass man sie in keinerlei Codeblock oder Namespace schreibt, und 'extern' sagt dem Compiler dass sie nur einmal deklariert wird, und nicht bei jedem .obj einzeln. Also wie soll man eine "globale" Variable ohne extern erstellen, und was macht extern fuer einen Sinn wenn die Variable nicht global ist..?
Klaert mich mal jemand auf? :)

Ach ja, mir faellt in dem Zusammenhang was ein: Ich hab in einer Header-Datei eine Variable folgendermassen deklariert: extern int g_var;
Auf diese Weise konnten alle Dateien die Variable verweden, aber beim Linken gabs ein unresolved external.. erst als ich in einer beliebigen .cpp die Zeile int g_var; (ohne extern) dazugeschrieben hab konnte gelinkt werden. Kann mir jemand erklaeren wieso?
"Have you tried turning it off and on again?"

spacegaier

Alter Hase

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

8

13.07.2006, 20:46

Ja ich glaub schon: Dadurch, dass du eine externe Variable deklarierst (also bei dir: extern int g_var) sucht der Compiler das "Original" (also nur int g_var). Wenn du die nirgendwo so definierst kommt ein "unresolved external...".

9

13.07.2006, 20:48

Ich hab mir FunnyBreak noch nicht durchgelesen, deshalb die Frage: Wie wurde das dort geregelt? Wie kamen die ohne globale Variablen aus?

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

10

13.07.2006, 20:50

Wozu braucht man den globale Variablen? maximal für irgendwelche Schnittstellen, und die kapselt man in einem Singleton, also einer Klasse die es nur 1x gibt und jeder zugreifen darf der will.

Durch diese Kapselung ist es mgl. diese Schnittstellen auch zu schützen.

Werbeanzeige