[VC++] Globale variabele?

Pagina: 1
Acties:

  • TheGhostInc
  • Registratie: November 2000
  • Niet online
Eigenlijk niet echt een probleem,
maar wat is nu eigenlijk de beste plaats op globale variabele in je VC app te declareren, of is het eigenlijk beter om alles telkens mee te blijven geven?

(Ook dingen als een bv. een theme voor alle vensters)

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 10-08 15:15
De plaats waar je globale variablen neerzet maakt in principe niets uit...
maar verder: zoveel mogelijk lokaal houden van variablen is wel aan te raden. Begrippen als lokaalheid kun je hier als verklaring voor aanvoeren.

Soms kom je niet onder het gebruik van globale variablen vandaan. Zo was ik met een programmatje bezig waarbij ik in verschillende threads een bepaalde variable nodig had, maar ik verder het creeren van threads niet in de hand had. Zo kon ik die variable bijvoorbeeld niet aan de thread meegeven, en zit er dus niets anders op dan de variable dan maar globaal te maken. Los van dat: die variable had ik in >80% van mijn functies over verschillende threads nodig, dus dan mag je wel zeggen dat je 'm globaal nodig hebt ;)

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • edwardVdV
  • Registratie: Mei 2002
  • Laatst online: 01-09 22:56

edwardVdV

I shall say this only once!

Vooral het direct doorgeven van structs of MFC-style Arrays (bijv. als references of pointers) irriteert mij zelf mateloos. Daarom kies ik vooral voor dat soort variabelen om ze globaal te declareren (bijvoorbeeld in de ...App.cpp file), en ze met "extern ....." in elke sourcefile waar ik ze nodig heb weer tevoorschijn te halen.

Succes.

Knockwurst.


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
"Global" of echt global?

Vaak kun je dit soort variabelen als static class members uitvoeren. Ook kun je ze in VC++/MFC in het app object kwijt. Maar voor dingen die inherent global zijn (Q: kan je er meer dan een hebben? A: Nee Q2: Heeft't een eigenaar? A2: Nee Q3: Heeft't een enkele gebruiker? A3: Nee) is een separate globals file handig. Op die manier heb je ook relatief veel controle over de initialisatie volgorde.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein