Variablen initialisierung



  • Hallo sollte man JEDE Variable in einem Programm mit einem Wert initialisieren ?

    Das man Pointer immer mit 0 initialisieren solle weiss ich bereits.

    Aber wie ist das bei den anderen Datentypen ?

    Manchmal hat mir mein Compiler auch ausgegeben.

    Warnung dieser Wert wird nicht verwendet: ( oder so ähnlich habe gerade kein Beispiel Quelltext. ) Was ist daran so schlimm einen Wert nicht zu verwenden ?



  • Wenn du deinen Wert nicht verwendest, warum benötigst du dann für diesen Speicher?



  • Eingentlich nichts aber jede Variable kostet Speicher. Wen sie nicht benutzt wird ist das so als wen du dir ein Brot kaufst und es nicht isst 🙂



  • Conflict schrieb:

    Eingentlich nichts aber jede Variable kostet Speicher. Wen sie nicht benutzt wird ist das so als wen du dir ein Brot kaufst und es nicht isst 🙂

    Kann man unbenutzte Variablen bei den Tafeln abgeben?



  • Wenn Sie auf dem Heap liegen, dann schon :p



  • var schrieb:

    Hallo sollte man JEDE Variable in einem Programm mit einem Wert initialisieren ?

    Das man Pointer immer mit 0 initialisieren solle weiss ich bereits.

    Aber wie ist das bei den anderen Datentypen ?

    Manchmal hat mir mein Compiler auch ausgegeben.

    Warnung dieser Wert wird nicht verwendet: ( oder so ähnlich habe gerade kein Beispiel Quelltext. ) Was ist daran so schlimm einen Wert nicht zu verwenden ?

    Wenn du eine Variable deklarierst und sie nicht verwendest, dann kannst du sie aus deinem Programm nehmen.

    Eine Initialisierung (also die Zuweisung eines Wertes an eine Variable) ist nicht immer notwendig und sinnvoll. Beispiel:

    int var;
    std::cin >> var;
    

    In diesem Fall würde es keinen Sinn machen, wenn man der Variable namens var einen Startwert zuweisen würde, da std::cin diesen ohnehin sofort überschreiben würde.



  • Wenn dein Typ einen Defaultkonstruktor besitzt, der alle Membervariablen korrekt und sinnvoll initialisiert, ist es ebenfalls wenig sinnvoll, diese Variable nochmals zu initialisieren. Die Warnung des Compilers kann dich darauf hinweisen, dass du einen Fehler gemacht hast (wenn du tatsächlich vorhattest, diese Variable zu verwenden, dann aber einen Schreibfehler gemacht hast).



  • kjljkljk schrieb:

    würde [...] Sinn machen

    Und folgendes:

    std::string str; // Initialisierung mit Standardwerten
    std::cin >> str; // Erneute Initialisierung
    

    Mein Beispiel macht keinen Sinn ist sinnlos, lässt sich wegen eines "Bugs der Standard-IO-lib" (Zitat von einem C++-Moderator) aber nicht vermeiden.

    Abgesehen von diesem unzulänglichen Codebeispiel: Man deklariert in C++ die Variablen nicht am Anfang der Funktion, sondern erst, wenn man sie direkt braucht. Und dann kann man ihr immer einen sinnvollen Startwert zuweisen.
    Deine "Warnung dieser Wert wird nicht verwendet:" tritt dann auch nicht mehr auf.


Anmelden zum Antworten