Freitag, 25. März 2011

Datentypen und ihre Wertebereiche - Theorie und Praxis?

Gestern bevor ich einschlief ging mir noch etwas durch den Kopf.

Für die zweite Einsendeaufgabe meines Fernlehrgangs musste ich bestimmten Wertebereichen die passenden und optimalen Datentypen zuordnen.
Mir ist klar warum man dies tun soll. Aber ich frage mich nun ob ein Programmierer im Arbeitsleben auch wirklich immer auf den richtigen Datentypen zugreift.

Wie ist das bei euch?
Achtet ihr immer auf den optimalen Datentypen? Nimmt man aufgrund der heutigen Technik einfach einen der Größeren? Kennt ihr die Gesamtwertebereiche auswendig im Kopf?
Oder vertraut man da ganz auf die Fehleranzeigen des Debuggers?

3 Kommentare:

  1. ich versuche eigentlich immer den passenden datentyp zu erwischen.. in summe ist das nunmal speicherschonend :) bei kleineren programmen fällt das wahrscheinlich nicht so ins gewicht, aber bei größeren macht das schon was aus..

    die wertebereiche weiß ich so ungefähr.. bzw. die bitanzahl die dem datentyp zur verfügung stehen.. von daher kommt man relativ schnell auf den genauen wertebereich bzw. kann abschätzen ob das ausreicht..

    die fehleranzeigen des debuggers sind sozusagen nur mehr das sicherheitsnetz..

    AntwortenLöschen
  2. Hmm die Bitanzahlen lassen sich definitiv leichter merken, vielleicht sollte ich es ja auch einfach auf dem Wege versuchen :-)

    Danke für den "Wegweiser" :-)

    AntwortenLöschen
  3. Ich mache Datentypen offen gesagt nur selten Gedanken. Was kann man in einer einfachen GUI-Anwendung sparen? 500x den Unterschied zwischen int und byte? Dafür kann ist für Puristen die Chance aber auch recht groß, das an allen Ecken und Kanten gecastet werden muss. Also wieder "trading space for time".

    Bei wirklich großen Serveranwendungen ist das natürlich eine andere Frage. Ob sich aber der Aufwand lohnt, wegen 50MB pingelig zu werden, ist eine andere Frage.

    Wichtiger ist, das man den Wertebereich nicht überschreitet. Dies ist zum Beispiel ein ganz beliebter Fehler: https://gist.github.com/887347

    AntwortenLöschen