Datentyp long



  • Hallo,

    ich habe eine Frage zum Datentyp long bzw. allgemein zu Datentypen.
    Es geht um den Zusammenahng zwischen Datentypen und Betriebssystem Architektur.
    Gibt es einen Zusammenhang zwischen einem 32-Bit Betriebssystem und dem Wertebereich einer Variablen? Ein Integer z.B. belegt 4 Byte, also 32 Bit auf 32-Bit Systemen. Die 32 Bit Architektur bezieht sich doch auf den Prozessor, wie breit also die interne Verarbeitung ist, teilweise eine andere Breite als die externe der Busse. Ein Integer könnte also "in einem Rutsch" eingelesen werden vom Prozessor aus dem RAM.
    Ich bin etwas verwirrt, weil ich gelesen habe, auf 16 Bit Systemen hat ein long auch 4 Byte, also 32 Bit. Es gibt also keinen direkten Zusamenhang? Ein long auf einem 16 Bit System müßte dann in zwei Etappen eingelesen werden? Und warum hat ein long in C auf 32 bit Systemen die gleiche Größe wie ein Integer? wozu dann überhaupt der Datentyp long? Nur aus Kompatibilität zu 16 Bit Systemen? Das hiesse aber auch, man könnte sich einen long schenken bei der Programmierung? Es gibt ja int. Ich hoffe, man versteht mein Problem, knn jemand etwas dazu sagen?

    Danke und Grüße

    palo



  • long und int sind zwei unabhängige Datentypen - die können auch größer als 32 Bit sein. Und der Standard definiert für beide nur bestimmte Mindestgrößen (afaik int=16 Bit, long=32 Bit) und die Bedingung sizeof(int)<=sizeof(long). Wie der Compiler die Typen letztendlich umsetzt, ist sein Problem.


Anmelden zum Antworten