JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=f51369366deaa64bcaefae4c8df2c4acMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

mini Frage:

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 09.10.2004, 16:18    Titel: mini Frage: Antworten mit Zitat

Stimmt es, das eine in einer Funktion als Static deklarierte Variable ihren Wert auch bei nächsten aufruf noch weiß, sie also nicht aus dem Hauptspeicher gelöscht wird?
Ist das dann so ne art globale Variable, die nur in dieser einen FUnktion zur verfügungn steht?
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mazze
JLI'ler


Alter: 39
Anmeldedatum: 02.01.2004
Beiträge: 145

Medaillen: Keine

BeitragVerfasst am: 09.10.2004, 16:27    Titel: Antworten mit Zitat

Ja das Stimmt (bezieht sich allerdings auf alle statischen Variablen)
Naja Global nicht direkt; Allerdings können auch Teile des Programms außerhalb der Funktion auf die statische Varibale zugreifen (via Referenz/Pointer)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
foreach
ehem. hanse



Anmeldedatum: 08.05.2004
Beiträge: 183

Medaillen: Keine

BeitragVerfasst am: 09.10.2004, 16:29    Titel: Antworten mit Zitat

Soweit ich weiß kann eine static Variable ihren Wert garnicht ändern... Ich kann mich aber auch irren!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 09.10.2004, 16:31    Titel: Antworten mit Zitat

die kann ihren Wert schon ändern sonst würde das Ganze ja gar keinen Sinn machen...
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 09.10.2004, 16:32    Titel: Antworten mit Zitat

hanse hat Folgendes geschrieben:
Soweit ich weiß kann eine static Variable ihren Wert garnicht ändern... Ich kann mich aber auch irren!


das, was du meinst, ist eine "Konstante" (const)
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
foreach
ehem. hanse



Anmeldedatum: 08.05.2004
Beiträge: 183

Medaillen: Keine

BeitragVerfasst am: 09.10.2004, 16:53    Titel: Antworten mit Zitat

ups Embarassed bin hald noch ein Neuling!

[quote=TheMillenium]
die kann ihren Wert schon ändern sonst würde das Ganze ja gar keinen Sinn machen...
[/quote]

Was macht dan const für einen Sinn?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 09.10.2004, 17:32    Titel: Antworten mit Zitat

ist ähnlich wie mit define.
man kann halt statt 3,14blubblubblub auch PI nehmen, oder statt 1024 ScreensizeX.
Erleichtert das Quellcode lesen, man kann den Wert sehr einfach ändern, und es bezieht sich auf den ganzen Quellcode und danknCompiler macht es keinen geschwindigkeitsunterschied.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
xardias
JLI Master


Alter: 38
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 09.10.2004, 18:16    Titel: Antworten mit Zitat

const wird auch oft zur übergabe von komplexen strukturen an funktionen benutzt ( also klassen, structs, etc)
Dort sollte man immer statt
void Bla( Player player );
das hier benutzen
void Bla( const player& player );

Das hat den Vorteil, dass das objekt nicht bei jedem funktionsaufruf kopiert werden muss, darum gibt man das als referenz an die funktion.
Das const ist dort sinnvoll, damit man in der funktion nicht den inhalt der klasse ändert, was man beim aufrufen der funktion nicht erwarten würde.
Außerdem kann der compiler konstante referenzen besser optimieren, aber da bin ich mir nicht so sicher.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 09.10.2004, 19:25    Titel: Antworten mit Zitat

const benutzt man um die Übergabe z.B. als Parameter an eine Funktion zu überprüfen was bei #define nicht geht...weil das nur eine Textersetzung ist...aber mit const definierte Variablen lassen sich auch im Debugmodus verfolgen...

static ist einfach nur dazu da das der Wert seit dem letzten Aufruf der Funktion beibehalten wird und man keine globale Variable dazu braucht es ist einfacher zu handhaben und übersichtlicher als wenn man tausende globale Variablen hat...
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum