short vs. int



  • da der Stack nach der Schleife wieder freigegeben wird spielt dass wohl kaum eine Rolle.



  • Original erstellt von AndreasW:
    da der Stack nach der Schleife wieder freigegeben wird spielt dass wohl kaum eine Rolle.

    Also ich kenne einen, der wendet nach dem Programmieren immer mindestens genausoviel Zeit für das Optimieren von so einem Rotz auf. Lobenswert vielleicht, und zu alten DOS Zeiten vielleicht sinnvoll, aber in Zeiten von 1024 MB RAM Speicherriegeln nicht mehr der Mühe wert.



  • ausserdem bin ich mir nicht sicher, ob das nicht sogar langsamer verarbeitet wird.



  • hm,

    bestimt nicht, wenn man den Index innerhalb der Schleife als Integer benötigt.
    Schließlich wird der Index dann gecastet, wodurch ein zusätzlicher Konstruktoraufruf die Schleife bei jeden Durchlauf stört.

    Und in den meisten Fällen braucht man den Index.



  • Also ich benutz für Schleifen die nur 10 mal durchlaufen oder so einen Char und sonst unsigned long oder unsigned short.

    Aber an Geschwindigkeit bringt das eigentlich nix ,
    der Hauptgrund ist eigentlich das der Code oftmals auf 2 verschiedenen Prozessoren (PC & Eigenbaukiste mit Hitachi Prozessor) laufen muss und int einmal als short und einmal als long interpretiert wird.



  • Verschoben nach "Rund um".



  • Es ist immer besser einen int zu benutzen,
    denn wenn du ihn zum Beispiel als Index für einnen Array benutzt wird er intern immer zu einem int gecastet.

    Auch bei Rechenoperationen von int mit z.B. short, wird vorher beides zu einem int gecarstet. Das Carsten kann bei längeren Schleifen durchaus ins Gewicht fallen.



  • Kann dann ein "unsigned int" die Lösung sein ?



  • 1. unsigned char ist ein byte (die Anzahl der bits ist aber nicht festgelegt vom Standard!)

    @<Unbekannt>

    ich dachte Indices sind vom Typ size_t (was ein Platform abhängiges typedef ist)



  • Original erstellt von <Unbekannt>:
    Auch bei Rechenoperationen von int mit z.B. short, wird vorher beides zu einem int gecarstet. Das Carsten kann bei längeren Schleifen durchaus ins Gewicht fallen.

    Das Inkrementieren geht aber AFAIK gleich schnell, egal welcher Datentyp. Wenn man mit Ganzzahlen rechnet ist es schneller int anstatt short oder char zu benutzen, weil bei diesen Berechnungen immer erst in integer umgewandelt wird.


Anmelden zum Antworten