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

1

29.12.2012, 11:06

Wann verwendet man das Anhängsel _Temp?

Guten Morgen,
in Listing 6.9 wird ja auf einmal das Anhängsel "Temp" verwendet.
Das heißt Temporär habe ihc mir schon sagen lassen, aber meine Frage:
Warum verwendet man das? Wann verwendet man das?

Ich habs mir versucht so zu erklären, dass man damit dann mehr verschiedene Variablen mitnehmen kann und sich nicht nur auf eine begrenzen muss. Also, sozusagen die Funktion Neutral halten, damit man sie öfters verwenden kann ^^

Wär das so richtig?

mfg,
Fendoer

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

29.12.2012, 12:01

Temporär heißt soviel wie vorübergehend, provisorisch. Ich denk das sollte auch die Frage beantworten... ;)

3

29.12.2012, 13:27

Ich habs mir versucht so zu erklären, dass man damit dann mehr verschiedene Variablen mitnehmen kann und sich nicht nur auf eine begrenzen muss. Also, sozusagen die Funktion Neutral halten, damit man sie öfters verwenden kann ^^

Ich glaube nicht, aber ich habe ehrlich gesagt auch nicht so ganz verstanden, was du damit überhaupt meinst.
Wenn die Variable Temp heißt, ist das zunächst einmal einfach nur ein Name, ohne jegliche semantische Bedeutung (für den Compiler). Aber man möchte damit in der Regel ausdrücken, dass der Wert in dieser Variable in Naher Zukunft verworfen wird, bzw. verworfen werden kann, weil er nicht mehr benötigt wird.
Lieber dumm fragen, als dumm bleiben!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

29.12.2012, 13:37

Klassisches Beispiel: das Vertauschen des Inhalts zweier Variablen A und B.
Den alten Wert der Variable A sichert man in einer temporären Variable (meinetwegen "Temp"), danach weist man A = B zu und schließlich B = Temp.

Anderes Beispiel: man berechnet verschiedene Werte, in denen gleiche Teilausdrücke vorkommen. Hier könnte man diese Teilausdrücke als erstes berechnen, sie in temporären Variablen speichern und schließlich verwenden.

Im Allgemeinen ist es aber besser, wenn man einer Variablen einen besseren Namen als "Temp" gibt, nämlich einen, der tatsächlich etwas über ihre Bedeutung aussagt.

Grundsätzlich spielt der Name aber für das Funktionieren des Programms keinerlei Rolle. Es ist nur ein Name, den kannst du vergeben, wie du lustig bist. Du kannst deine Variable auch "KatzenfutterMitSpiegelei" nennen, dem Compiler ist es egal.

5

29.12.2012, 16:08

ja...
ich hab das bei den Funktionsparametern aber nicht ganz geschnallt.
Es scheint teilweise wichtig, teilweise aber wieder vollkommen egal zu sein, wie der Name des Parameters lautet.
Wie im Beispiel 6.9
Der Name des ursprünglich deklarierten Parameters ist anders, als dann der übergebene Wert. Also... Geht es dabei mehr oder weniger nur um Platzhalter, die dann auch ersetzt werden können? ach, ich drück mich so nutzlos aus, cih versteh mich grad selbst nicht ganz... egal, danke für die Hilfe.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

6

29.12.2012, 16:27

Wäre gut wenn du etwas Code posten könntest, da ich das Buch selbst nicht besitze. Ich versuch mal zu raten:

C-/C++-Quelltext

1
2
3
4
void function1(int parameter)
{
  // tu nichts
}

Wäre eine beliebige Funktion die nichts tut und als Parameter einen Integer erwartet. Dieser Parameter heißt hier einfach mal einfallslos "parameter".
Wenn du die Funktion jetzt irgendwo aufrufen möchtest sieht das vielleicht wie folgt aus:

C-/C++-Quelltext

1
function1(42);

Hier wird direkt der Wert 42 übergeben. Innerhalb der Funktion könntest du über "parameter" darauf zugreifen, da der Parameter in der Funktionsdeklaration "parameter" genannt wurde. Du könntest aber auch eine Int-Variable übergeben:

C-/C++-Quelltext

1
2
int test = 42;
function1(test);


Hier speicher ich den Wert "42" zuerst in einer Int-Variable mit dem Namen "test" und übergebe diese Variable dann "function1". Innerhalb der Funktion könntest du nun wieder über "parameter" darauf zugreifen.
Mal ein paar Beispiele:

C-/C++-Quelltext

1
2
3
4
int add(int a, int b)
{
    return a + b;
}


Diese Funktion könnte man nun folgendermaßen aufrufen:

C-/C++-Quelltext

1
int ergebnis = add(7, 9);

Oder aber auch:

C-/C++-Quelltext

1
add(34, 5);


Wobei hier der Rückgabewert nicht weiter verwendet wird, so wie im oberen Beispiel. Du könntest aber auch folgendes machen:

C-/C++-Quelltext

1
2
3
int zahl1 = 29;
int zahl2 = 37;
int ergebnis = add(zahl1, zahl2);


Oder ein Mix:

C-/C++-Quelltext

1
2
int zahl1 = 23;
int ergebnis = add(zahl1, 45);


Innerhalb der Funktion wird über "a" und "b" auf die Parameter zugegriffen. Ob du nun aber direkt einen Wert oder eine Variable übergibst spielt da keine Rolle.
Ist es das was du meintest?
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

7

29.12.2012, 18:58

Ha!
Danke, jetzt habe ich das verstanden :D
herzlichen Dank ^^ XD
dann noch nen schönen Abend ^^

Werbeanzeige