Einzelnen Beitrag anzeigen

XoRiC

Registriert seit: 20. Sep 2005
43 Beiträge
 
RAD-Studio 2009 Arc
 
#1

Variablentypen Byte, ShortInt, etc. noch sinnvoll?

  Alt 30. Nov 2009, 18:09
Hallo,

ich habe eine Frage zu den (un-)gängigen Variablentypen in Delphi. ich neige meist dazu, Variablentypen so klein wie möglich zu wählen. Wenn ich also von einer Variable weiß, dass sie stets positiv ist und beispielsweise nicht größer als 20 wird, dann deklariere ich sie als Byte. Wenn eine Variable -1, 0 und 1 sein kann, nehme ich z.B. ShortInt usw.

Hier mal ein Beispiel wie mein Code desöfteren aussieht. Der Inhalt besitzt keinen tieferen Sinn:


Delphi-Quellcode:
function Add_or_subtract: ShortInt;
begin
  // Code unwichtig, liefert z.B. -1 oder +1
end;

procedure Test(max: byte);
  var i: integer;
      add: ShortInt;
      j: byte;
begin
  // ..
  i := 10;
  add := Add_or_subtract;
  for j := 1 to max do i := i + add;
  // ..
end;
Nun hat sich schon das eine oder andere Mal der Compiler beschwert, dass ich bei mathematischen Operationen oder if-Abfragen Variablen unterschiedlichen Typs verwende, z.B. verschiedener Breite oder unsigned mit signed.
Nun frage ich mich, ob das überhaupt noch sinnvoll ist, da der Arbeitsspeicher heutzutage ja mehr als ausreichend ist und wohl niemand einen Unterschied merkt, ob eine Hand voll Variablen als ShortInt oder als Integer im Speicher liegen. In meinem obigen Beispiel hätte ich dann z.B. alternativ sämtliche Variablen als Integer deklariert.

Ich persönlich mag diesen Programmierstil, alles so klein wie möglich zu halten. Es gibt mir oft einen guten Überblick, welchem Zweck die ein oder andere Variable dient. Da mein laufender Prozess nach meinem derzeitigen Verständnis durch Typumwandlungen aber eher verlangsamt wird (?) und ich neulich über einen Artikel gestolpert bin, nach dem sogar schon Booleans teilweise im 32-Bit Format gespeichert werden, wollte ich mal in die Runde fragen, ob mir zu diesem Thema jemand ein paar Informationen geben kann.

Danke wie immer für Tipps und Links,
Gruß Xoric
  Mit Zitat antworten Zitat