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
|
Verfasst am: 09.10.2004, 16:18 Titel: mini Frage: |
|
|
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 |
|
 |
Mazze JLI'ler
Alter: 39 Anmeldedatum: 02.01.2004 Beiträge: 145
Medaillen: Keine
|
Verfasst am: 09.10.2004, 16:27 Titel: |
|
|
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 |
|
 |
foreach ehem. hanse
Anmeldedatum: 08.05.2004 Beiträge: 183
Medaillen: Keine
|
Verfasst am: 09.10.2004, 16:29 Titel: |
|
|
Soweit ich weiß kann eine static Variable ihren Wert garnicht ändern... Ich kann mich aber auch irren! |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 09.10.2004, 16:31 Titel: |
|
|
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 |
|
 |
HotAcid Super JLI'ler

Alter: 43 Anmeldedatum: 04.08.2002 Beiträge: 372 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 09.10.2004, 16:32 Titel: |
|
|
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 |
|
 |
foreach ehem. hanse
Anmeldedatum: 08.05.2004 Beiträge: 183
Medaillen: Keine
|
Verfasst am: 09.10.2004, 16:53 Titel: |
|
|
ups 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 |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 09.10.2004, 17:32 Titel: |
|
|
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 |
|
 |
xardias JLI Master

Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 09.10.2004, 18:16 Titel: |
|
|
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 |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 09.10.2004, 19:25 Titel: |
|
|
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 |
|
 |
|